2012-01-07 26 views
0

我正在寫一個算法,使用連續的平方來解決^ k mod m。由於連續平方的工作方式,算法將不得不計算的最大數量爲2147483646^2(我將用戶輸入限制爲214738364)。不幸的是,它仍然需要計算這個。它似乎得到了正確的平方部分,然後將溢出的數字轉換爲浮點數,但無法計算浮點數和整數的模數。PHP溢出模數

的樣本行是:

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

我怎樣才能解決這個問題,以及如何找到一個圍繞PHP整數溢出一個人的方式嗎?

+0

你怎麼能解決什麼問題?那個浮點/積分mod不可用? – 2012-01-07 17:37:55

+0

好吧,顯然一個模不會返回一個負數,但這就是發生在這裏。是否有一個特殊的PHP函數用於浮點數和整數的模數? – 2012-01-07 17:39:50

+0

[模數返回一個負數有什麼問題?](http://codepad.org/TwoMrkOR)我不認爲浮點數與它有什麼關係;它只是一個溢出的整數。 – 2012-01-07 17:42:43

回答