阶乘和除法的模数

时间:2014-02-23 07:07:28

标签: algorithm modulus

如何解决(a! / (b! * c!)) % mod。此处a!a的阶乘。

就像(a + b) % mod = (a % mod + b % mod) % mod

一样

我知道要计算(a * b) % mod

但是如何取这种函数的模数呢?

更新:找到(a / (b * c)) % mod的最佳方式。 这里mod是素数。

1 个答案:

答案 0 :(得分:0)

请注意(a! / (b! * c!)) % M等于((a! % M) / ((b! % M) * (c! % M))) % M,请执行x! % M

def modfac(x, M):
    if x == 0:
        return 1
    else:
        return (modfac(x-1, M)*x)%M

这可以迭代,但它只是一个例子。

然后使用它:

(modfac(a,M) / (modfac(b,M) * modfac(c,M))) % M