当m是素数时,如何计算nPr mod m?

时间:2014-03-07 15:04:42

标签: factorial modular-arithmetic

我需要找出nPr%m的值。

这是我使用的方法。

查找,n!%m,(n-r)!%m并将它们分开

但是,对于某些情况,(n-r)!%m大于n!%m,因此得到的nPr为0.

那我该怎么做?

1 个答案:

答案 0 :(得分:0)

这是一个数学问题,而不是编程问题,但无论如何。

请注意

n! / (n - r)! = n * (n - 1) * ... * (n - r + 1)

现在进行乘法运算,

(a * b * c) % m = (((a * b) % m) * c) % m

即。而不是mod m整个产品,您可以mod m产品中两个因素相乘的中间结果。

我不会在这里提供完整的代码,但希望这足以让你弄明白。