0

連続二乗を使用して a^k mod m を解決するアルゴリズムを作成しています。連続二乗が機能する方法のため、アルゴリズムが計算する必要がある最大数は 2147483646^2 です (ユーザー入力を 214738364 に制限しました)。残念ながら、これはまだ計算する必要があります。二乗部分を正しく取得したようで、オーバーフローした数値を浮動小数点数に変換しますが、浮動小数点数と整数のモジュラスを計算できません。

サンプル行は次のとおりです。

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

どうすればこれを修正できますか? また、PHP で整数オーバーフローを回避するにはどうすればよいですか?

4

1 に答える 1

1

GMP 拡張機能を調べて、この質問を読むことをお勧めします。

于 2012-01-07T17:59:51.500 に答える