首先给出组合数计算方法:C(n, m) = n!/m!/(n-m)!.
公式中有除数,a / b % m != a % m / b % m. 但是 a / b % m = a * b' % m其中b'是b模m的逆元。
求逆元可以用拓展欧几里德。但是当模数m是质数时,可以用费马小定理求逆元。虽然求出来的不一定是最小逆元,对模运算来说,没关系的。
费马小定理:a^(m-1) 同余 1 模 m。其中m为质数。那么a模m的一个乘法逆元就是a^(m-2)。
当模数m较大时,a^(m-2)会爆long long. 那么就要用快速幂运算了。
\
\