写这点东西就用了两个小时,数论真的……
零零碎碎的知识点:
同余运算的性质
模运算
逆元(数论倒数)
1.(a/b)mod p≠((a mod p) / (b mod p))mod p
2. gcd(a,b)=gcd(a-b,b)=gcd(a%b,b)=……
2. 裴蜀定理 :当且仅当m是gcd(a,b)的倍数时,方程ax+by=m有整数解
3. 逆元(数论倒数):a/b=a*f(b),f(x)有这样的性质:x*f(x) ≡1 (mod p)
1.欧几里得算法
这个就不说了
2.扩展欧几里得算法 //不是很懂
用于求解ax+by=m
由裴蜀定理,有: //虽然这里不是很懂
当方程有整数解时,m是gcd(a,b)的倍数
∴可以写成ax+by=gcd(a,b)
目标:求解ax+by=gcd(a,b)
由gcd(a,b)==gcd(b,a%b)
可知有:
bx+(a%b)y=gcd(a,b);
一直传递下去,直到:
gcd(a,b) * x + 0 * y = gcd(a,b);
可得到现方程的一组解
x=1,y=0
而a%b==a-floor(a/b)*b
∴bx1+(a-floor(a/b)*b)y1=gcd(a,b) ???
展开,合并同类项,有
ay1+b(x1-floor(a/b)y1)=gcd(a,b)
这里,可以把y1看成x,把有公因数b的多项式看成y ???
写了一半突然不会了。。。
3.费马小定理(也可以看百度百科的证明)
引理①:
当gcd(a,p)=1,即a,p互质且a*b≡a*c (mod p)时 //写给我自己看的:看笔记本上同余运算的性质
可以得到b≡c (mod p)
a*(b-c)≡0 (mod p)
引理②:
∵1*2*……*(p-1)≡(1*a)*(2*a)*……*[(p-1)*a] (mod p)
化简,得(p-1)!≡(p-1)!*[a^(p-1)] (mod p)
∵p是质数
∴gcd((p-1)!,p)==1,即互质
∴由引理①(好像不能用同余运算的性质,不知道对非整数适用与否,数论真的迷)
有
a^(p-1)≡1 (mod p)
费马小定理:假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p)
∴a*a^(p-2)≡1(mod p)
所以a在mod p域下的逆元为a^(p-2),快速幂求解即可