费马小定理
一 定理内容
如果p是质数,并且a不是p的倍数。那么就有 a p − 1 = 1 ( m o d p ) a^{p-1} = 1(mod\space p) ap−1=1(mod p)
其次我们还需要去了解逆元的意义
对于正整数a和p,如果有 a x ≡ 1 ( m o d p ) ax\equiv 1(mod\space p) ax≡1(mod p) ,那么称x的最小整数解为a模p的逆元
由上面的结论我们可以得到a的逆元其实就是 a p − 2 a^{p-2} ap−2 ,对于这个数我们可以使用快速幂来计算结果
二 费马小定理的运用
费马小定理可以用来解决求组合数的问题,在求解组合数的时候,我们虽然可以通过使用杨辉三角来进行求解,但是在一些情况下我们经常需要去求解一个组合数的模,但是那些阶乘超过了我们的运算范围,也需要对它们进行取模,可是这个时候上下同时进行取模的结果是错误的结果。下面我们来进行 a b m o d p \frac{a}{b}mod\space p bamod p 的正确求解操作
首先有一个前提条件是a mod b = 0 a/b = m
假设存在一个数使得ax%p = m
由于模运算对于乘法是有效的,所以两边同时乘上b,得到a%p = (m%p)*(b%p)%p
两边再同时乘以x,得到m%p = (mb)*x%p,得到 1 = bx%p, 所以我们可以知道这个x其实就是b的逆元,基于这个结论我们可以得到求解 a b m o d p = a ⋅ b 的 逆 元 \frac{a}{b}\mod p = a\cdot b的逆元 bamodp=a⋅b的逆元
所以对于组合数 C a b = a ! b ! ( a − b ) ! = a ! ⋅ b ! ( a − b ) ! 对 于 p 的 逆 元 C_a^b = \frac{a!}{b!(a-b)!} = a!\cdot b!(a-b)!对于p的逆元 Cab=b!(a−b)!a!=a!⋅b!(a−b)!对于p的逆元