2014-02-23 56 views
0

如何解決(a!/(b! * c!)) % mod。這裏的a!是因子a階乘和分的模數

正如(a + b) % mod = (a % mod + b % mod) % mod

我知道計算(a * b) % mod

但是如何取這種函數的模數呢?

已更新:最好的方法是什麼(a/(b * c)) % mod。 這裏mod是素數。

+0

請澄清。你的問題有點混亂。 – KRUKUSA

+0

@KRUKUSA你不明白? – user3306991

+0

mod是什麼?模數是否爲素數? –

回答

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 
+0

對於計算n! mod M很快,看到[這個線程](http://stackoverflow.com/questions/9727962/fast-way-to-calculate-n-mod-m-where-m-is-prime) –

+0

@DanD WH如果denomnator (a /(b * c))%mod我們的問題是現在減少到(a /(b * c))%mod – user3306991