#线性求逆元
- 1−1≡1(mod p)1^{-1}\equiv1(mod\ p)1−1≡1(mod p)
- 令p=k∗i+r,r<i,1<i<pp=k*i+r,r<i,1<i<pp=k∗i+r,r<i,1<i<p
- k∗i+r≡0(mod p)k*i+r \equiv 0 (mod\ p)k∗i+r≡0(mod p)
- 两边同事乘上i−1∗r−1i^{-1}*r^{-1}i−1∗r−1得到
- k∗r−1+i−1≡0(mod p)k*r^{-1}+i^{-1}\equiv0 (mod\ p)k∗r−1+i−1≡0(mod p)
- i−1≡−k∗r−1(mod p)i^{-1}\equiv-k*r{-1}(mod \ p)i−1≡−k∗r−1(mod p)
- i−1≡−∣pi∣∗(pmodi)−1(mod p)i^{-1}\equiv-|\frac{p}{i}|*(p\quad mod\quad i)^{-1}(mod\ p)i−1≡−∣ip∣∗(pmodi)−1(mod p)
- 所以递推公式为
- A[i]=−(p/i)∗A[p%i]A[i]=-(p/i)*A[p \% i]A[i]=−(p/i)∗A[p%i]
- 同时也可以用log(p)次计算出单个数的逆元,-----用递归的方式求需要计算的元素即可