秦皇岛wannafly[数论]学习笔记
费马小定理
$a^{p} \equiv a mod p a^{p-1} \equiv 1 mod p $ 要求$p$是质数
欧拉公式
$a^{\phi(n)} \equiv 1 (mod n) $ 要求$gcd(a,n)=1$
序列循环节
$A[i] = i*a mod n$
1.当a,n互质,循环节是n 0~a~(n-1)a 是n个不同的数字:证明:余数相同的两个数的差是n的倍数,ca是n的倍数,c小于n,a是n的倍数,an又是互质,矛盾。
2.循环节是$\frac{n}{gcd(a,n)}$ 因为实际上是 $d*i(a'%n')$
3.$gcd(a,b)=d ; a mod b = da' mod d b' = d(a' mod b') $算循环节要把最大公因数提出来
应用场景:$ax \equiv b (mod n) , x\in [l,r] $求方程解的个数
$gcd(a,n)=d$ $ax$ $mod$ $n$的值从x到0~n'-1遍历n'-1,其中b'$就是答案
$A[i] = a^i mod n$
1.a和n互质
会在$\psi(n)$出现循环节:因为欧拉公式
2.不互质
是个混循环但是除开纯循环部分,剩下的序列个数很少在$log(n)$之间,所以当i比较小的时候就自己算,然后i大的时候可以除余$\psi(n)$
判断一个序列是纯循环还是混循环
$对于A[i]能不能唯一的推出A[i-1],比如第一个数列 A[i-1]=(A[i]-a) mod n,第二个数列A[i-1]=A[i]*(a^{-1}) mod n,是纯循环,a有逆元就是纯循环,不然就是混循环$
对于上面第二个序列可以证明他的混循环部分不超过log(n):
- $A_i = A_{i+1}*a^{-1}$ mod n 当a,n不互质就没有逆元
- 所以这里把gcd(a,n)提出来变成新的a,n 就可以$A_i = A_{i+1}*a^{-1}$ mod n了
(a mod b)和b互质,则a和b互质
分解质因数
pollard_rho
用板子吧。。。$10^18$这种数据可以用这个分解,然后$10^10$这种的就用$\frac{\sqrt{n}}{logn}$就行了
板子:
欧拉函数
是一个积性函数所以用分解质因数就行
孙子定理/中国剩余定理
用逆元求解
$n mod m_i = a_i$
$(a_1,a_2,...,a_x) \leftrightarrow (0,m_1m_2..m_x)$ 一 一对应,其中$a_1,a_2...a_x$两两互质
- $(1,1,1,1...1) \leftrightarrow 1$ ;
- 如果$(a_1和m_1),(a_2和m_2)...(a_x和m_x)$互质,那$(a_1,a_2,...,a_x)$对应的数字也一定和$m_1m_2...m_x$互质
- (证明:如果对应数字$n$与$m_k$不互质,那么$m_k$与$a_k$一定不互质,矛盾)
- (应用:$\psi(n)=\prod_{i=1}^x \psi(p_i^{k_i})$ )
- $(0,m_1m_2..m_x) \leftrightarrow ( (0,m_1),(0,m_2),(0,m_3),...,(0,m_x) )$
- $(0,m_1m_2..m_x) \longrightarrow ( (0,m_1),(0,m_2),(0,m_3),...,(0,m_x) )$ :直接用$k$ mod $m_1,...,m_x$
- $(0,m_1m_2..m_x) \longleftarrow ( (0,m_1),(0,m_2),(0,m_3),...,(0,m_x) )$ :中国剩余定理的过程