Модуль переполнения PHP - PullRequest
0 голосов
/ 07 января 2012

Я пишу алгоритм, который использует последовательный квадрат для решения ^ k мод m. Из-за того, как работает последовательное возведение в квадрат, максимальное число, которое алгоритму когда-либо придется вычислять, составляет 2147483646 ^ 2 (я ограничил вводимые пользователем данные 214738364). К сожалению, это все еще должно вычислить это. Кажется, что вы получаете правильную квадратную часть, а затем превращаете переполняемое число в число с плавающей точкой, но затем не можете вычислить модуль с плавающей точкой и целое число.

Пример строки:

3422422^2 mod 715924 = 661224^2 mod 715924 = 437217178176 mod 715924 = -354280

Как я могу это исправить и как найти способ обойти целочисленное переполнение в PHP?

1 Ответ

1 голос
/ 07 января 2012

Я бы предложил проверить расширение GMP и прочитать этот вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...