powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Работа с очень большими целыми числами
25 сообщений из 59, страница 2 из 3
Работа с очень большими целыми числами
    #39638569
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy UsovНа основании выше указанного алгоритма было определено значение 2 в степени 100:

1267650600228229401496703205376

Если делать вычисления с использованием одной переменной, то получается:

1267650600228230000000000000000
Точность double - 15 десятичных знаков, больше не получится. Чудес не бывает.
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638576
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TGennadiy UsovНа основании выше указанного алгоритма было определено значение 2 в степени 100:

1267650600228229401496703205376

Если делать вычисления с использованием одной переменной, то получается:

1267650600228230000000000000000
Точность double - 15 десятичных знаков, больше не получится. Чудес не бывает.
Данное решение получено за счет 4-х чисел массива Р(К), которые имеют 3 раза по 10 цифр (меньше 15 десятичных знаков) и 1 раз 1 цифра. Всего 31 цифра.
Все согласно алгоритму 21379400 Q=10000000000. (10 в 10-ой степени)
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638577
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TGennadiy UsovВидел недавно на странице сообщении о работе с массивом, где хранится вся информация о числе, когда считается N!, и не могу найти.

Со своей стороны попробую сделать простой алгоритм по такому же принципу.
Ничего не понятно, если честно. Давай попроще пример, число 100500 как должно выглядеть по твоему?
Так и выглядеть.
Алгоритм нужен для тех целых чисел, которые превышают, и значительно, 10 в 15-ой степени. С целью найти все цифры, которые составляют данное число.
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638585
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy Usov... С целью найти все цифры, которые составляют данное число.

Если предлагаемый способ не позволяет найти число *всех* размещений,
а только некоторую неизвестную часть от точно неизвестного количества,
то зачем нужна абсолютная точность?
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638614
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksandr SharahovGennadiy Usov... С целью найти все цифры, которые составляют данное число.

Если предлагаемый способ не позволяет найти число *всех* размещений,
а только некоторую неизвестную часть от точно неизвестного количества,
то зачем нужна абсолютная точность?
А почему не позволяет?
Если сравнивать два решения задачи определения 2 в степени 100 21380238 , то первое решение точное, а второе решение - приближенное, которое больше точного на:
598504296794624

А решение получается приближенным потому, что размер ячейки на компьютере не более 10 в степени 15.
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638619
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Размер ячейки компьютера" может достигать ста двадцати восьми бит и даже кратно превышать этот размер.
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638621
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy UsovAleksandr Sharahovпропущено...


Если предлагаемый способ не позволяет найти число *всех* размещений,
а только некоторую неизвестную часть от точно неизвестного количества,
то зачем нужна абсолютная точность?
А почему не позволяет?

Потому, что *всех* решений на десятки порядков больше.
Предлагаемым способом можно найти только небольшую часть *модулярных* решений,
которых тоже на много порядков больше.
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638642
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksandr SharahovGennadiy Usovпропущено...

А почему не позволяет?

Потому, что *всех* решений на десятки порядков больше.
Предлагаемым способом можно найти только небольшую часть *модулярных* решений,
которых тоже на много порядков больше.
Все смешалось, и модулярные туда же...

Все очень просто:
Есть число А = 123456. У него 6 цифр и они видны.
Есть выражение 2 в степени 200, в результате решения которого получается число В = 1Е+78, у каторого известно только 15 цирр из 79.

Смысл алгоритма: найти все 79 цифр числа В!
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638644
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy UsovAleksandr Sharahovпропущено...


Потому, что *всех* решений на десятки порядков больше.
Предлагаемым способом можно найти только небольшую часть *модулярных* решений,
которых тоже на много порядков больше.
Все смешалось, и модулярные туда же...

Все очень просто:
Есть число А = 123456. У него 6 цифр и они видны.
Есть выражение 2 в степени 200, в результате решения которого получается число В = 1Е+78, у каторого известно только 15 цирр из 79.

Смысл алгоритма: найти все 79 цифр числа В!2^200 это очень небольшое число, для математики.
а если задача дает выражение вида 9^9^9 ?
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638660
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy UsovAleksandr Sharahovпропущено...


Потому, что *всех* решений на десятки порядков больше.
Предлагаемым способом можно найти только небольшую часть *модулярных* решений,
которых тоже на много порядков больше.
Все смешалось, и модулярные туда же...

Все очень просто:
Есть число А = 123456. У него 6 цифр и они видны.
Есть выражение 2 в степени 200, в результате решения которого получается число В = 1Е+78, у каторого известно только 15 цирр из 79.

Смысл алгоритма: найти все 79 цифр числа В!

Это точно, все смешалось.
Когда некто покупает картошку, то указывает/получает вес с точностью 2-4 знака.
И ему совершенно пофигу, сколько там в ней нейтронов, протонов и электронов.

По условию, точное решение необходимо для задачи подсчета *всех* размещений ферзей.
Зачем нужен точный подсчет части модулярных решений предлагаемым алгоритмом остается неясным.

Например, все знают алгоритм, с помощью которого всегда можно получить ровно одно решение.
И что с того?
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638665
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
S.G.]2^200 это очень небольшое число, для математики.
а если задача дает выражение вида 9^9^9 ?
Пока меня интересует 2^200, поскольку это выражение помогает найти решения на доске 1000х1000.
Что касается второго выражения, то, наверное, вы знаете как это выражение применить.
При нахождении цифр значения этого выражения не должно быть особых проблем.
Главное: вы должны сообщить порядок числа, которое является значением данного выражения, и разыскать компьютер, который справится в разумное время с данной задачей.
А то мне уже говорили на данной странице, что даже для получения всех сочетаний из 200 чисел может не хватить времени в обозримом будущем.
А что касается массивов, то для 2^200 заполняется массив Р(8) по 10 цифр.
Так что довольно просто заполнить массив Р(348678440), в каждом из которых будет 10 цифр.
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638666
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksandr Sharahov
По условию, точное решение необходимо для задачи подсчета *всех* размещений ферзей.
Зачем нужен точный подсчет части модулярных решений предлагаемым алгоритмом остается неясным.

Например, все знают алгоритм, с помощью которого всегда можно получить ровно одно решение.
И что с того?
Вы забыли про счетчик числа всех сочетаний из 200 чисел.
Как к 1,2345Е+38 прибавить 1?
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638674
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy UsovAleksandr SharahovПо условию, точное решение необходимо для задачи подсчета *всех* размещений ферзей.
Зачем нужен точный подсчет части модулярных решений предлагаемым алгоритмом остается неясным.

Например, все знают алгоритм, с помощью которого всегда можно получить ровно одно решение.
И что с того?
Вы забыли про счетчик числа всех сочетаний из 200 чисел.
Как к 1,2345Е+38 прибавить 1?

Первый вопрос: Зачем? Что нам такого дополнительно дает знание суммы? Что дальше с ней делать будем?
Второй: Почему нельзя использовать оценки вместо точных значений?
Третий: Почему нельзя складывать слагаемые разных порядков раздельно?
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638678
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksandr SharahovGennadiy Usov
Вы забыли про счетчик числа всех сочетаний из 200 чисел.
Как к 1,2345Е+38 прибавить 1?

Первый вопрос: Зачем? Что нам такого дополнительно дает знание суммы? Что дальше с ней делать будем?
Второй: Почему нельзя использовать оценки вместо точных значений?
Третий: Почему нельзя складывать слагаемые разных порядков раздельно?
А дальше, зная суммы, будем следующие числа складывать. Ведь их много (решений).
А как же математическая (не физическая) точность?
А как сложить 1,2345Е+38 и 123456?
Оценка нужна только для того, чтобы понять: а куда мы влезли? и что делать дальше?
На то она и оценка, а не решение.

Так вы ничего не сказали про счетчик
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638681
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy UsovAleksandr Sharahovпропущено...


Первый вопрос: Зачем? Что нам такого дополнительно дает знание суммы? Что дальше с ней делать будем?
Второй: Почему нельзя использовать оценки вместо точных значений?
Третий: Почему нельзя складывать слагаемые разных порядков раздельно?
А дальше, зная суммы, будем следующие числа складывать. Ведь их много (решений).
А как же математическая (не физическая) точность?
А как сложить 1,2345Е+38 и 123456?
Оценка нужна только для того, чтобы понять: а куда мы влезли? и что делать дальше?
На то она и оценка, а не решение.

Так вы ничего не сказали про счетчик

Допустим, мы посчитали точную финальную сумму - количество решений вашего алгоритма.
Зачем нам она? Что дальше с ней делать будем?

Про счетчик не понял, что надо про него сказать?
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638687
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy UsovПока меня интересует 2^200
Код: python
1.
2.
3.
4.
5.
ActivePython 2.7.10.12 (ActiveState Software Inc.) based on
Python 2.7.10 (default, Aug 21 2015, 12:07:58) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> pow(2,200)
1606938044258990275541962092341162602522202993782792835301376L
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638695
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. Тут мне кажется нужно оперировать сравнениями. Например. Не все калькуляторы считают
2^128 степени а нам надо посчитать влезет ли число в десятичную (символьную) сетку
в базу данных.

Здесь к примеру криптография - яркий пример. Наука базирующаяся на "оценках". Типа через
быстро (от нескольких секунд до минут), медленно (дни) либо никогда (столетия) мы раскроем
ключ.
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638794
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov>>> pow(2,200)
1606938044258990275541962092341162602522202993782792835301376L


Отлично!
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638796
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поскольку появляются вместо больших чисел массивы чисел, то необходимо ввести арифметические операции для этих чисел.
Операция сложения больших чисел.
Пусть имеется два больших числа (одно может быть обычным числом):
Р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)
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638797
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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)
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638833
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy UsovDimitry Sibiryakov>>> pow(2,200)
1606938044258990275541962092341162602522202993782792835301376L


Отлично!
Кстати. Ты завязывай со своим Excel-ем. Тебе Дмитрий дал пример
эффективного использования Питона. Бери на заметку.
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39638979
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy Usov Операция сложения больших чисел.
Вот тебе исходник бенчмарка некоторых операций над большими числами.
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39714030
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovGennadiy UsovПока меня интересует 2^200
Код: python
1.
2.
3.
4.
5.
ActivePython 2.7.10.12 (ActiveState Software Inc.) based on
Python 2.7.10 (default, Aug 21 2015, 12:07:58) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> pow(2,200)
1606938044258990275541962092341162602522202993782792835301376L

Число хорошее. Даже супер!
А как это число сохранить в памяти ЭВМ?
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39714034
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy UsovЧисло хорошее. Даже супер!
А как это число сохранить в памяти ЭВМ?
Код: python
1.
2.
3.
4.
5.
6.
7.
Python 2.7.15 (default, Jun 17 2018, 22:57:51) 
[GCC 7.3.0] on linux2
>>> pow(2,800)
6668014432879854274079851790721257797144758322315908160396257811764037237817632071521432200871554290742929910593433240445888801654119365080363356052330830046095157579514014558463078285911814024728965016135886601981690748037476461291163877376L
>>> a=pow(2,800)
>>> print a
6668014432879854274079851790721257797144758322315908160396257811764037237817632071521432200871554290742929910593433240445888801654119365080363356052330830046095157579514014558463078285911814024728965016135886601981690748037476461291163877376
...
Рейтинг: 0 / 0
Работа с очень большими целыми числами
    #39714036
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy UsovDimitry Sibiryakovпропущено...
Код: python
1.
2.
3.
4.
5.
ActivePython 2.7.10.12 (ActiveState Software Inc.) based on
Python 2.7.10 (default, Aug 21 2015, 12:07:58) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> pow(2,200)
1606938044258990275541962092341162602522202993782792835301376L

Число хорошее. Даже супер!
А как это число сохранить в памяти ЭВМ?
Как строку.
...
Рейтинг: 0 / 0
25 сообщений из 59, страница 2 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Работа с очень большими целыми числами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]