Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
maytonDimitry Sibiryakov>>> pow(2,200) 1606938044258990275541962092341162602522202993782792835301376LGennadiy UsovЧисло хорошее. Даже супер! А как это число сохранить в памяти ЭВМ?Как строку.А точнее, в операторах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2018, 15:06 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovmaytonпропущено... пропущено... Как строку.А точнее, в операторах Не понял. Например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2018, 15:15 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy UsovА точнее, в операторахНе понял. Например.Просто как это число или массив чисел написать в программе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2018, 16:37 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovmaytonпропущено... Не понял. Например.Просто как это число или массив чисел написать в программе. В рамках языка программирования JavaScript который ты (теоретически) используешь для описания своих алгоритмов - никак. В базовой комплектации JavaScript поддерживает следующие типы данных. https://learn.javascript.ru/types-intro Спеку сейчас не могу найти но вся арифметика JavaScript (кроме индексов массивов) вычисляется в вещественном типе double. Поэтому встроенные типы нам позволят задать максимум 1.7976931348623158e+308 как обычно с потерей точности младших разрядов. Но в интернетах полно библиотек которые расширяют JavaScript добавляя в него классы новой алгебры с новыми свойствами. К сожалению работать с ними надо немного по другому. Например: Код: javascript 1. 2. 3. Здесь z = x * y Ссылки по теме: https://github.com/MikeMcl/big.js/ Вобщем ... javascript это как раз самый неудачный язык для длинной арифметики. Здесь С++ или Scala были бы в самый раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2018, 22:16 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy UsovПросто как это число или массив чисел написать в программе.В рамках языка программирования JavaScript который ты (теоретически) используешь для описания своих алгоритмов - никак. Но в интернетах полно библиотек которые расширяют JavaScript добавляя в него классы новой алгебры с новыми свойствами. К сожалению работать с ними надо немного по другому. Вобщем ... javascript это как раз самый неудачный язык для длинной арифметики. Здесь С++ или Scala были бы в самый раз.Что-то мне подсказывает, что в программах нужно избегать очень, очень больших ("длинных") чисел. Поэтому необходимо понять: а где у нас появляются большие числа. Если говорить об алгоритмах в задаче N ферзей, то при описании алгоритмов имеется три вида больших чисел: - количество сочетаний; - количество решений для метода матрицы в матрице; - количество решений самой задачи. Поскольку во всех описаниях алгоритмов, где имеют место сочетания, присутствует 2 в степени K, то надо хранить (и выводить на печать) не 2^К, а просто К (подразумевая, что это степень). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 12:53 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovmaytonпропущено... В рамках языка программирования JavaScript который ты (теоретически) используешь для описания своих алгоритмов - никак. Но в интернетах полно библиотек которые расширяют JavaScript добавляя в него классы новой алгебры с новыми свойствами. К сожалению работать с ними надо немного по другому. Вобщем ... javascript это как раз самый неудачный язык для длинной арифметики. Здесь С++ или Scala были бы в самый раз.Что-то мне подсказывает, что в программах нужно избегать очень, очень больших ("длинных") чисел. Поэтому необходимо понять: а где у нас появляются большие числа. Если говорить об алгоритмах в задаче N ферзей, то при описании алгоритмов имеется три вида больших чисел: - количество сочетаний; - количество решений для метода матрицы в матрице; - количество решений самой задачи. Поскольку во всех описаниях алгоритмов, где имеют место сочетания, присутствует 2 в степени K, то надо хранить (и выводить на печать) не 2^К, а просто К (подразумевая, что это степень). Это 100 % верная мысль. Лучше такие числа не использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 15:11 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Тут еще можно пойти от операций. Форма хранения должна отражать какую-то приспособленность. Например если мы будем только возводить в степени двойки ну ... пускай так и будет "2^200", "2^201". Алгебраическая форма записи числа. А если будем сравнивать - например что больше 2^20 или 10^6 надо будет уже исло материализовывать или преобразовывать. По поводу операций с битами AND/OR/XOR. Длинное число можно представить строкой в формате BinHex и свести битовые операции с операцией над 4-х битовыми символами от 0 до F. В языке PL/SQL я раз использовал такой подход чтоб эмулировать арифметику битовых карт которой там не было изначально на уровне language. Десятичная система для операций с битами непригодна. Кроме того я убежден что задачу ферзей надо решать без прямых расчетов длинных чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 09:06 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDimitry Sibiryakovпропущено... Код: python 1. 2. 3. 4. 5. Число хорошее. Даже супер! А как это число сохранить в памяти ЭВМ?мы все смотрим на это число на наших ЭВМ, а значит - его можно сохранить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 14:07 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
maytonКроме того я убежден что задачу ферзей надо решать без прямых расчетов длинных чисел.На самом деле, всё намного проще. Мы можем сколько угодно говорить о количестве сочетаний 2^100, 2^250, 2^1000 и т.д., но ЭВМ "говорит" нам, что она "переварит" только около 1,0Е+18 решений (доска 27х27, или что-то похожее). А количество решений где-то совпадают с количеством сочетаний, которые могут использоваться при определении этих решений. Может быть алгоритмы МЭА дадут некоторую прибавку по количеству решений по сравнению с методом поиска с возвратом. И всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 16:04 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39714145&tid=1340048]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
155ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 16ms |
| total: | 273ms |

| 0 / 0 |
