Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
В настоящее время появляется целые положительные числа, размер которых порядка 1,0E+50 и более. Такие числа можно раздробить и представить в виде массива. Кто-нибудь имел дело с такими массивами при проведении вычислений между ними? Либо это где-то уже рассмотрено? Или оставить только цифры высокого порядка и работать с одной ячейкой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 13:49 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 13:53 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
STFW "длинная арифметика". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 14:01 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 17:15 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, double ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 23:06 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovВ настоящее время появляется целые положительные числа, размер которых порядка 1,0E+50 и более. Такие числа можно раздробить и представить в виде массива. Кто-нибудь имел дело с такими массивами при проведении вычислений между ними? Либо это где-то уже рассмотрено? Или оставить только цифры высокого порядка и работать с одной ячейкой? Это - в разрезе шахматных задач? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 13:22 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
maytonЭто - в разрезе шахматных задач? Конечно. А вот как сложить следующие числа: 2,23487E+41 496 121790 6,69449E+17 5,37882E+78 . И при этом не потерять ни одной цифры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 13:35 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovА вот как сложить следующие числа: 2,23487E+41 496 121790 6,69449E+17 5,37882E+78 . И при этом не потерять ни одной цифры.А почему вы уверены, что в исходных данных записи в научной нотации являются точными? Вы вообще читали хоть что-то про приближённые вычисления, относительную и абсолютную точности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 13:40 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
mayton Это - в разрезе шахматных задач? И еще: есть направления задачи, где вычисляется 2 в степени 40, 125, 250 и другие степени. А это 1,09951E+12 4,25353E+37 1,80925E+75 И сколько при этом цифр будет "срезано"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 13:43 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovА почему вы уверены, что в исходных данных записи в научной нотации являются точными? Вы вообще читали хоть что-то про приближённые вычисления, относительную и абсолютную точности? Такие данные получаются вследствие вычислений по алгоритмам. Когда-то на мехмате слушал лекции про о(малые). Поэтому в первом сообщении 21373938 и говорится о том, что нужно ли гоняться за о(малыми). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 13:49 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovЛибо это где-то уже рассмотрено? Бери Питон и не парься: там поддержка длинной арифметики "из коробки". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 13:53 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovТакие данные получаются вследствие вычислений по алгоритмам.Вот прямо с восемью значащими десятичными цифрами, но, при этом требуется складывать значения, отличающиеся на десятки порядков??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 14:07 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovGennadiy UsovТакие данные получаются вследствие вычислений по алгоритмам.Вот прямо с восемью значащими десятичными цифрами, но, при этом требуется складывать значения, отличающиеся на десятки порядков??? Математика требует точности в вычислениях. Раз такие разные слагаемые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 14:10 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovBasil A. Sidorovпропущено... Вот прямо с восемью значащими десятичными цифрами, но, при этом требуется складывать значения, отличающиеся на десятки порядков??? Математика требует точности в вычислениях. Раз такие разные слагаемые. Математика оперирует не числами а символами. В твоем случае. Сверх точность может потребоавться например для доказательства того что Числовой ряд сходится. Вопрос. Что у тебя за сравнение которому не хватило double.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 14:41 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
mayton Вопрос. Что у тебя за сравнение которому не хватило double.? В EXCEL точность представления числа - 15 цифр. А какая точность представления числа у double? 2 в степени 200 - 60 цифр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 15:09 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovВ EXCEL точность представления числа - 15 цифр. А какая точность представления числа у double? Такая же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 15:15 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovmaytonВопрос. Что у тебя за сравнение которому не хватило double.? В EXCEL точность представления числа - 15 цифр. А какая точность представления числа у double? 2 в степени 200 - 60 цифр. Это фейк. Вернее требует уточнения. У double нет десятичного представления. И точка плавает. Тоесть на очень больших числах у double - грубая точность (можно сравнивать расстояния между галлактиками) и на очень мелких (расстояния между атомами вещества) точность повышается. Побочный эффект - невозможно складывать очень большие и очень малые величины. Большая величина не получит никакого прироста. Но это для double и не требуется. Это величина для научных расчетов где важны старшие разряды мантиссы т.к. они важны для оценок и сравнений. А то что ты сравниваешь - это бухгалтерия. Для нее есть другие форматы чисел которые по сабжу совершенно верно назвали. Посмотри вот на онлайн калькулятор http://www.binaryconvert.com/convert_double.html Он наиболее точно показывает внутреннее представление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 15:37 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Если уж приспичило складывать сильно отличающиеся числа - отсортируй по возрастанию и складывай их в этом порядке - потеряешь минимум ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 15:49 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
maytonУ double нет десятичного представления. И точка плавает. Тоесть на очень больших числах у double - грубая точность (можно сравнивать расстояния между галлактиками) и на очень мелких (расстояния между атомами вещества) точность повышается. В случаях когда с double надо работать как с целыми - важен размер мантиссы, а он 52 бита, т.е. без потерь можно представить число до 2^52 или 4.5*10 15 , вот откуда те самые 15 десятичных знаков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 16:33 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovМатематика требует точности в вычислениях. Раз такие разные слагаемые.Глупо говорить о точности при записи с 15-18 значащими цифрами и разнице в 60 десятичных порядков. Перевожу: точность вы уже потеряли и можете ничего не складывать - результат от этого не изменится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 17:10 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2018, 19:49 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovИли оставить только цифры высокого порядка и работать с одной ячейкой?смотря что за задача. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2018, 23:54 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Видел недавно на странице сообщении о работе с массивом, где хранится вся информация о числе, когда считается N!, и не могу найти. Со своей стороны попробую сделать простой алгоритм по такому же принципу. Задача: найти числа для 2 в степени N для любого N. Имеется число Q, которое определяет степень разделения числа на группы, например Q=10000000000. (10 в 10-ой степени) Имеется массив Р(К), 1<=j<=K. P(1)=1. Допустим К = 10. Больше не встречал. 1<=i<=N, 1<=j<=K. если P(j)>0 то P(j) = P(j) x 2 если P(j)>=Q то (P(j)=P(j)-Q, P(j+1)=P(j+1)+1) Тогда число будет выглядеть как сумма P(j) х (Q в степени (j-1)) Иногда может быть случай, когда после прибавления 1 все P(j) >= Q. Тогда цикл если P(j+1)>=Q то (P(j+1)=P(j+1)-Q, P(j+2)=P(j+2)+1) и т.д. с выходом из цикла если <Q. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 05:30 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
На основании выше указанного алгоритма было определено значение 2 в степени 100: 1267650600228229401496703205376 Если делать вычисления с использованием одной переменной, то получается: 1267650600228230000000000000000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 18:55 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovВидел недавно на странице сообщении о работе с массивом, где хранится вся информация о числе, когда считается N!, и не могу найти. Со своей стороны попробую сделать простой алгоритм по такому же принципу. Ничего не понятно, если честно. Давай попроще пример, число 100500 как должно выглядеть по твоему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 19:42 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovНа основании выше указанного алгоритма было определено значение 2 в степени 100: 1267650600228229401496703205376 Если делать вычисления с использованием одной переменной, то получается: 1267650600228230000000000000000 Точность double - 15 десятичных знаков, больше не получится. Чудес не бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 19:45 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy UsovНа основании выше указанного алгоритма было определено значение 2 в степени 100: 1267650600228229401496703205376 Если делать вычисления с использованием одной переменной, то получается: 1267650600228230000000000000000 Точность double - 15 десятичных знаков, больше не получится. Чудес не бывает. Данное решение получено за счет 4-х чисел массива Р(К), которые имеют 3 раза по 10 цифр (меньше 15 десятичных знаков) и 1 раз 1 цифра. Всего 31 цифра. Все согласно алгоритму 21379400 Q=10000000000. (10 в 10-ой степени) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 20:13 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy UsovВидел недавно на странице сообщении о работе с массивом, где хранится вся информация о числе, когда считается N!, и не могу найти. Со своей стороны попробую сделать простой алгоритм по такому же принципу. Ничего не понятно, если честно. Давай попроще пример, число 100500 как должно выглядеть по твоему? Так и выглядеть. Алгоритм нужен для тех целых чисел, которые превышают, и значительно, 10 в 15-ой степени. С целью найти все цифры, которые составляют данное число. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 20:18 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov... С целью найти все цифры, которые составляют данное число. Если предлагаемый способ не позволяет найти число *всех* размещений, а только некоторую неизвестную часть от точно неизвестного количества, то зачем нужна абсолютная точность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 21:15 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovGennadiy Usov... С целью найти все цифры, которые составляют данное число. Если предлагаемый способ не позволяет найти число *всех* размещений, а только некоторую неизвестную часть от точно неизвестного количества, то зачем нужна абсолютная точность? А почему не позволяет? Если сравнивать два решения задачи определения 2 в степени 100 21380238 , то первое решение точное, а второе решение - приближенное, которое больше точного на: 598504296794624 А решение получается приближенным потому, что размер ячейки на компьютере не более 10 в степени 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 05:33 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
"Размер ячейки компьютера" может достигать ста двадцати восьми бит и даже кратно превышать этот размер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 08:21 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovAleksandr Sharahovпропущено... Если предлагаемый способ не позволяет найти число *всех* размещений, а только некоторую неизвестную часть от точно неизвестного количества, то зачем нужна абсолютная точность? А почему не позволяет? Потому, что *всех* решений на десятки порядков больше. Предлагаемым способом можно найти только небольшую часть *модулярных* решений, которых тоже на много порядков больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 08:49 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovGennadiy Usovпропущено... А почему не позволяет? Потому, что *всех* решений на десятки порядков больше. Предлагаемым способом можно найти только небольшую часть *модулярных* решений, которых тоже на много порядков больше. Все смешалось, и модулярные туда же... Все очень просто: Есть число А = 123456. У него 6 цифр и они видны. Есть выражение 2 в степени 200, в результате решения которого получается число В = 1Е+78, у каторого известно только 15 цирр из 79. Смысл алгоритма: найти все 79 цифр числа В! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 11:00 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovAleksandr Sharahovпропущено... Потому, что *всех* решений на десятки порядков больше. Предлагаемым способом можно найти только небольшую часть *модулярных* решений, которых тоже на много порядков больше. Все смешалось, и модулярные туда же... Все очень просто: Есть число А = 123456. У него 6 цифр и они видны. Есть выражение 2 в степени 200, в результате решения которого получается число В = 1Е+78, у каторого известно только 15 цирр из 79. Смысл алгоритма: найти все 79 цифр числа В!2^200 это очень небольшое число, для математики. а если задача дает выражение вида 9^9^9 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 11:09 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovAleksandr Sharahovпропущено... Потому, что *всех* решений на десятки порядков больше. Предлагаемым способом можно найти только небольшую часть *модулярных* решений, которых тоже на много порядков больше. Все смешалось, и модулярные туда же... Все очень просто: Есть число А = 123456. У него 6 цифр и они видны. Есть выражение 2 в степени 200, в результате решения которого получается число В = 1Е+78, у каторого известно только 15 цирр из 79. Смысл алгоритма: найти все 79 цифр числа В! Это точно, все смешалось. Когда некто покупает картошку, то указывает/получает вес с точностью 2-4 знака. И ему совершенно пофигу, сколько там в ней нейтронов, протонов и электронов. По условию, точное решение необходимо для задачи подсчета *всех* размещений ферзей. Зачем нужен точный подсчет части модулярных решений предлагаемым алгоритмом остается неясным. Например, все знают алгоритм, с помощью которого всегда можно получить ровно одно решение. И что с того? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 12:30 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
S.G.]2^200 это очень небольшое число, для математики. а если задача дает выражение вида 9^9^9 ? Пока меня интересует 2^200, поскольку это выражение помогает найти решения на доске 1000х1000. Что касается второго выражения, то, наверное, вы знаете как это выражение применить. При нахождении цифр значения этого выражения не должно быть особых проблем. Главное: вы должны сообщить порядок числа, которое является значением данного выражения, и разыскать компьютер, который справится в разумное время с данной задачей. А то мне уже говорили на данной странице, что даже для получения всех сочетаний из 200 чисел может не хватить времени в обозримом будущем. А что касается массивов, то для 2^200 заполняется массив Р(8) по 10 цифр. Так что довольно просто заполнить массив Р(348678440), в каждом из которых будет 10 цифр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 12:57 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov По условию, точное решение необходимо для задачи подсчета *всех* размещений ферзей. Зачем нужен точный подсчет части модулярных решений предлагаемым алгоритмом остается неясным. Например, все знают алгоритм, с помощью которого всегда можно получить ровно одно решение. И что с того? Вы забыли про счетчик числа всех сочетаний из 200 чисел. Как к 1,2345Е+38 прибавить 1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 13:02 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovAleksandr SharahovПо условию, точное решение необходимо для задачи подсчета *всех* размещений ферзей. Зачем нужен точный подсчет части модулярных решений предлагаемым алгоритмом остается неясным. Например, все знают алгоритм, с помощью которого всегда можно получить ровно одно решение. И что с того? Вы забыли про счетчик числа всех сочетаний из 200 чисел. Как к 1,2345Е+38 прибавить 1? Первый вопрос: Зачем? Что нам такого дополнительно дает знание суммы? Что дальше с ней делать будем? Второй: Почему нельзя использовать оценки вместо точных значений? Третий: Почему нельзя складывать слагаемые разных порядков раздельно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 13:13 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovGennadiy Usov Вы забыли про счетчик числа всех сочетаний из 200 чисел. Как к 1,2345Е+38 прибавить 1? Первый вопрос: Зачем? Что нам такого дополнительно дает знание суммы? Что дальше с ней делать будем? Второй: Почему нельзя использовать оценки вместо точных значений? Третий: Почему нельзя складывать слагаемые разных порядков раздельно? А дальше, зная суммы, будем следующие числа складывать. Ведь их много (решений). А как же математическая (не физическая) точность? А как сложить 1,2345Е+38 и 123456? Оценка нужна только для того, чтобы понять: а куда мы влезли? и что делать дальше? На то она и оценка, а не решение. Так вы ничего не сказали про счетчик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 13:22 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovAleksandr Sharahovпропущено... Первый вопрос: Зачем? Что нам такого дополнительно дает знание суммы? Что дальше с ней делать будем? Второй: Почему нельзя использовать оценки вместо точных значений? Третий: Почему нельзя складывать слагаемые разных порядков раздельно? А дальше, зная суммы, будем следующие числа складывать. Ведь их много (решений). А как же математическая (не физическая) точность? А как сложить 1,2345Е+38 и 123456? Оценка нужна только для того, чтобы понять: а куда мы влезли? и что делать дальше? На то она и оценка, а не решение. Так вы ничего не сказали про счетчик Допустим, мы посчитали точную финальную сумму - количество решений вашего алгоритма. Зачем нам она? Что дальше с ней делать будем? Про счетчик не понял, что надо про него сказать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 13:28 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovПока меня интересует 2^200 Код: python 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 13:46 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Да. Тут мне кажется нужно оперировать сравнениями. Например. Не все калькуляторы считают 2^128 степени а нам надо посчитать влезет ли число в десятичную (символьную) сетку в базу данных. Здесь к примеру криптография - яркий пример. Наука базирующаяся на "оценках". Типа через быстро (от нескольких секунд до минут), медленно (дни) либо никогда (столетия) мы раскроем ключ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 14:08 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov>>> pow(2,200) 1606938044258990275541962092341162602522202993782792835301376L Отлично! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 19:35 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Поскольку появляются вместо больших чисел массивы чисел, то необходимо ввести арифметические операции для этих чисел. Операция сложения больших чисел. Пусть имеется два больших числа (одно может быть обычным числом): Р1(N1) и P2(N2). В каждой ячейке этих массивов будем хранить не более 10 цифр. Q=10000000000. Сумма этих массивов будет массивом Р(N), где N = max(N1,N2). P(j)=0, 1<=j<=N. Тогда 1<=j<=N. P(j) = P1(j) + P(j) если P(j)>=Q то (P(j)=P(j)-Q, P(j+1)=P(j+1)+1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 19:48 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovТогда 1<=j<=N. P(j) = P1(j) + P(j) если P(j)>=Q то (P(j)=P(j)-Q, P(j+1)=P(j+1)+1) Ошибка. Следует читать: Тогда 1<=j<=N. P(j) = P1(j) + P2(j) если P(j)>=Q то (P(j)=P(j)-Q, P(j+1)=P(j+1)+1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 19:50 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDimitry Sibiryakov>>> pow(2,200) 1606938044258990275541962092341162602522202993782792835301376L Отлично! Кстати. Ты завязывай со своим Excel-ем. Тебе Дмитрий дал пример эффективного использования Питона. Бери на заметку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 21:55 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov Операция сложения больших чисел. Вот тебе исходник бенчмарка некоторых операций над большими числами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2018, 13:41 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovGennadiy UsovПока меня интересует 2^200 Код: python 1. 2. 3. 4. 5. Число хорошее. Даже супер! А как это число сохранить в памяти ЭВМ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2018, 14:10 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovЧисло хорошее. Даже супер! А как это число сохранить в памяти ЭВМ? Код: python 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2018, 14:25 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDimitry Sibiryakovпропущено... Код: python 1. 2. 3. 4. 5. Число хорошее. Даже супер! А как это число сохранить в памяти ЭВМ? Как строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2018, 14:53 |
|
||
|
Работа с очень большими целыми числами
|
|||
|---|---|---|---|
|
#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/search_topic.php?author=retnan&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 442ms |
| total: | 763ms |

| 0 / 0 |
