2012-01-07 117 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

回答