有没有人知道计算
数量的方法n! mod M
这样溢出不是问题吗?我想不出任何像这么大的n值都不会引起问题的东西。
答案 0 :(得分:3)
假设n * (n-1)
没有溢出,您可以在每次乘法后取出产品mod M
。
更新:正如Dukeling
非常耐心地向我解释的那样,上述假设不是足够条件确保该方法在每次乘法后应用mod M
将保证不会溢出。
足够条件是(M-1)*(n mod M)
不会溢出,因为这是在mod
被采用之前可能产生的最大可能产品。
答案 1 :(得分:0)
如果您使用Big Integer库,它将永远不会溢出。但是,根据算法和所需的位数,执行可能需要数年时间。