标签: algorithm math combinations
我试图计算nCr模p,其中p是素数。
我尝试过的一种方法是计算n! /(r!*(nr)!)模p使用乘法逆,但当r或n - r大于或等于p时,这会失败,因为因子则是零模p并且反转不是存在。
什么方法适用于所有情况,而不仅仅是在存在乘法反转时?
答案 0 :(得分:7)
我使用Lucas's theorem
C(14,1), p=13 N = 14 = 1 * 13 + 1 K = 1 = 0 * 13 + 1 C(N,K) mod p = (C(1,0) mod 13 ) * (C(1,1) mod 13) = 1