![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 04.11.2009
Сообщений: 6
|
![]()
Здравствуйте. Требуется находить остаток от деления огромного числа на другое небольшое число.
Вот набросок: Код:
Делаю тоже самое на калькуляторе Windows, выходит 79. Если x сделать на 2 разряда меньше - все совпадает. Вообще планировал вычислять остаток от еще больших чисел, например 1,7e+84 и т.п. И всегда выходит ошибочное значение, тогда как калькулятор Win считает правильно |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Можете написать хоть 100 пятерок, все равно double - не точнее 15..16 значащих цифр.
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 04.11.2009
Сообщений: 6
|
![]()
type_Oleg, есть ли какое-нибудь простое решение?
|
![]() |
![]() |
![]() |
#4 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
![]() Код:
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 04.11.2009
Сообщений: 6
|
![]()
.hump, спасибо, работает. А не знаете ли случайно, как теперь возводить в степень?
Пишу Код:
|
![]() |
![]() |
![]() |
#6 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
![]()
я рад, что работает, только надо понимать, что емкости u __int64 хватит только на числа меньше 10^19. для больших чисел простых решений нет.
и как правильно отметили даблы в данном случае ничем не помогают. в случае с pow, возможно, ошибка вылазит из-за того, что результ возведения лежит вне разрешенного диапазона для u __int64, если х объявлен как u __int64. |
![]() |
![]() |
![]() |
#7 |
Регистрация: 04.11.2009
Сообщений: 6
|
![]()
f.hump, спасибо, что доходчиво объяснили. Понял, что такая задачка лучше будет на другом языке программирования, например на Python, например
Код:
![]() |
![]() |
![]() |
![]() |
#8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Это потому что в Питоне длинная арифметика.
I'm learning to live...
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
M = b(a^x)^(-1) mod p | hellsingXXX | Общие вопросы Delphi | 1 | 27.12.2011 13:52 |
a * a mod n | NiCola999 | Помощь студентам | 3 | 18.12.2010 15:08 |
Деление a mod b | Emperous | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 02.02.2010 21:10 |
программа Добавляет левые элементы в массив, и не считает числа входящие в условие! | lutfi | Общие вопросы C/C++ | 1 | 12.12.2009 00:48 |
ошибка с mod | Kn793 | Помощь студентам | 2 | 16.07.2008 13:28 |