用于计算(n!mod M)数量的递归函数

时间:2014-05-01 17:44:29

标签: algorithm recursion factorial

有没有人知道计算

数量的方法
n! mod M

这样溢出不是问题吗?我想不出任何像这么大的n值都不会引起问题的东西。

2 个答案:

答案 0 :(得分:3)

假设n * (n-1)没有溢出,您可以在每次乘法后取出产品mod M

更新:正如Dukeling非常耐心地向我解释的那样,上述假设不是足够条件确保该方法在每次乘法后应用mod M将保证不会溢出。

足够条件是(M-1)*(n mod M)不会溢出,因为这是在mod被采用之前可能产生的最大可能产品。

答案 1 :(得分:0)

如果您使用Big Integer库,它将永远不会溢出。但是,根据算法和所需的位数,执行可能需要数年时间。