数论基础知识
Posted vbel
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数论基础知识相关的知识,希望对你有一定的参考价值。
欧拉函数
定义:φ(x)为1至x中与x互质的数的个数.
φ(x)=x*∏(p为x的所有质因子)(1-1/p)
简单说明一下,这其实是利用了容斥原理.假设x只有两个不同的质因子p,q,1至x中p的倍数有x/p个,q的倍数有x/q个,把这些数去掉之后,我们也许会重复去掉一些小于x既是p的倍数又是q的倍数的数,这时候就得加回来,于是有φ(x)=x-x/p-x/q+x/p*q.化简一下,可以得到φ(x)=x(1-1/p-1/q+1/p*q)=x(1-1/p)(1-1/q).同理对于多个质因子的也可以利用容斥原理计算,最后化简后的式子即为所给公式.
欧拉定理
若a,p互质,则aφ(p)≡1(modp).
证明之前先补充一下关于mod的一些定义性质.
同余类 设0<=a<m,(a+k*m)对m同余,称集合a+k*m为一个模m的同余类.
完全剩余系 m的所有同余类构成的集合成为m的完全剩余系0,1,2,3...m-1.
简化剩余系 1至m中与m互质的数代表的同余类构成的集合成为简化剩余系,它们有φ(m)个.例如8的简化剩余系为1,3,5,7.
简化剩余系的性质:关于模m乘法封闭 如果a和b均与m互质,则a*b也与m互质,因为a,b和m都没有公共质因子,因此a*b和m也没有公共质因子,由gcd(a*b,m)=gcd(m,a*b%m)可知,a*b%m也与m互质,因此a*b也在m的简化剩余系中.
证明:
设bi为1到p中与p互质的第i个数,考虑a*bi≡a*bj(modp),a(bi-bj)≡0(modp),因为a与p互质,所以bi-bj=0,bi=bj,也就是只有bi=bj时a*bi≡a*bj(modp)才能成立.
综上所述,b1,b2,b3....bφ(p)构成一个简化剩余系,a与p互质,因此a也属于简化剩余系,由于简化剩余系对乘法封闭,且只有bi=bj时,才有a*bi≡a*bj(modp),而bi各不相同,因此a*b1,a*b2,a*b3...a*bφ(p)也同样构成简化剩余系,因此有(a*b1)(a*b2)...(a*bφ(p))=b1*b2...*bφ(p)(modp),bi均与p互质,化简一下即可得到aφ(p)≡1(modp).
费马小定理
若p为质数,对于任意整数有ap≡a(modp).
证明:
由欧拉定理可知若p为质数,φ(p)=p-1,对于所有整数a,a不是p的倍数,即a与p互质,有ap-1≡1(modp),而当a为p的倍数的时候,ap≡a(modp)显然成立.
逆元
定义:对于整数a,若存在a*b≡1(modp),则称b为a关于模p的逆元.
作用:若a*b≡1(modp),则b可以看作是(1/a)%p,当要执行除法取模操作的时候,例如(c/a)%p,则可以写成c*b%p.
求法:当a和p互质时,由欧拉定理知aφ(p)≡1(modp),a*aφ(p)-1≡1(modp),因此a关于模p的逆元(a*)=aφ(p)-1,特别的当p为质数时,(a*)=ap-2.
以上是关于数论基础知识的主要内容,如果未能解决你的问题,请参考以下文章