原根存在性定理的群论证明

原根存在性定理的证明

定义模m意义下满足阶为φ(m)的元素为m的原根,求证mN+的原根存在,当且仅当m{2,4,pa,2pa|pP{2},aZ+},其中P为素数集。显然,如果m的原根存在,那么m的既约剩余系就是以原根为生成元的φ(m)阶乘法循环群。

m的原根存在,则mφ(φ(m))个原根,φ为[欧拉函数](欧拉函数_百度百科 (baidu.com))。

参考资料:[原根存在性定理的群论证明 - 知乎](原根存在性定理的群论证明 - 知乎 (zhihu.com))

m=2,4时显然,原根分别为1,3,而且他们也都只有一个原根。

先证明pP{2} 有原根。

S(d)={xZp|δp(x)=d},其中Zpp的既约剩余系,δp(x)为模p意义下x的阶,即满足xk1(modp)的最小正整数k记为δp(x)。那么S(d)就是模p意义下的既约剩余系中的所有阶为d的元素。

那么根据定义,S(φ(p))中的所有元素都是p的原根。

欧拉定理,模p意义下所有数的阶必定是φ(p)的因子,所以只有d|φ(p)=p1的时候S(d)才不是空集。

欧拉定理的证明本来想直接引用百度百科的,但是看了一眼发现它没有证明引理。。。

引理:若{ai|1iφ(m)}构成m的既约剩余系,那么{bai|1iφ(m),bm}也是m的既约剩余系。
证明:反证法。否则就存在baibaj(modm)(ij)。然后bm就保证了模m意义下b的乘法逆元存在,也就是说它支持等号两边同时除去一个作为乘数的b,那么就变成了aiaj(modm)(ij),这和{ai}是既约剩余系矛盾。因此同时乘上一个与m互质的数之后既约剩余系还是既约剩余系。

证明欧拉定理:取m的既约剩余系a1,,aφ(m),那么在模m意义下随便取一个和m互质的正整数a,一定满足aa1,,aaφ(m)也是既约剩余系。则i=1φ(m)aii=1φ(m)aaiaφ(m)i=1φ(m)ai(modm)。又因为ai构成既约剩余系,所以他们的乘法逆元都存在,左边和右边同时除以他们的累乘,可以得到aφ(m)1(modm)。同时,又因为δm(a)是满足ak1的最小正整数k,所以必定有δm(a)|φ(m)。这两个公式就被称为欧拉定理。

而且诸多S(d)也构成了Zp的划分,即所有S(d)并起来就可以得到Zp

所以可以有d|φ(p)|S(d)|=|Zp|=φ(p)

同时我们可以证明d|φ(p)φ(d)=pd|φ(p)φ(d)=d|φ(p)φ(pd)

明显,1ap,总共有p个整数取值。

同样,对于所有的a,它与m的最大公因数gcd(a,m)一定是m的因数(废话),那么就记这个最大公因数为d=gcd(a,m),同时除以这个数,得到gcd(ad,pd)=1,那么对于每一个d|p,就会有φ(pd)ad与之互质。所以说,d|pφ(pd)=p

也可以这样理解,一方面来说a总共有p个,另一方面来说要满足gcd(ad,pd)=1aφ(pd)个,因此d|pφ(d)=p

如果代入φ(p)就可以得到d|φ(p)φ(d)=φ(p)

那么隔起来,我们可以说,d|φ(p)φ(d)=φ(p)=d|φ(p)|S(d)|

这个时候我们就有个猜想,有没有可能d|φ(p),|S(d)|=φ(d)。如果这个成立,那么我们就可以得到|S(φ(p))|=φ(φ(p))。那么这样p的原根存在而且有φ(φ(p))个。

S(d),aS(d),s.t.ad1(modp)

根据阶的定义,应该有a0,a1,,ad1在模p意义下互不相同,虽然但是,他们都是xd1(modp) 的解。我们也可以根据数学归纳法证明d次方程的解最多有d个。因此上面d个数就恰好是xd1(modp)的所有根。

数学归纳法证明d次方程最多有d个根:

首先对于一次方程ax+b=0(a0),显然最多有一个解。
如果n次方程(nN+)最多只有n个解成立,那么对于n+1次方程,如果他能有n+2或更多个解,那么对于他的一个解x0,我们可以把这个方程写成(xx0)fn(x)=0,这是一个关于x的方程,fn(x)是关于x的一个n次多项式。
那么x=x0是这个方程的一个解,照这么说fn(x)=0应该有n+1或更多个解。然而我们的前提是n次方程最多只有n个解。因此这个结论和前提不符。只要前提成立我们的假设就不可能成立。然而n=1时前提成立,所以对于所有自然数,我们的假设都不成立,它的否定命题成立,n+1次方程最多有n+1个解。

那么我们可以说,a0,a1,,ad1包含了所有满足xd1(modp)的解,也就是包含了Zp中所有阶为d的元。

那么ak(k=0,1,,d1)就是这个乘法循环群中的d阶生成元。然而a也是这个乘法循环群的d阶生成元。

有下面这个式子:如果ad阶生成元,那么ak就是dgcd(d,k)阶生成元。简单说明一下,因为ad0(modp),所以alcm(d,k)1(modp)。然后lcm(d,k)=dkgcd(d,k),摁提出一个k之后就是ak的阶。

然后所有的ak都是d阶元,这就说明gcd(d,k)=1,即dk,这样的kφ(d)个。

所以,card({ak})=|S(d)|=φ(d),我们的猜想是对的!

那么就证明了p是奇素数的时候原根存在性定理是正确的。


这个时候考虑pa(pP{2},aN+)推导到pa+1。如果这个关系成立,那么数学归纳法就帮我们证明了所有奇素数的正整数次幂情况下原根存在性定理的正确性。

假设pa时原根存在性定理成立,它的某个原根记为g,同时记r=δpa+1(g)gpa+1意义下的阶。

根据欧拉定理,有r|φ(pa+1)。同时考虑r,φ(pa)的关系。现在已经知道原根g满足gφ(pa)1(modpa),gr1(modppa)

既然模pa+1意义下gr都是1了,那么模数是他的因数pa肯定也是1

严谨来说,我们把上面第二个同余方程转化为不定方程,就会有gr+kppa=1(kZ)

我们也可以写成gr+kppa=1(kpZ),那么久可以转化为同余方程gr1(modpa)

同时我们也知道δpa(g)=φ(pa)应该是满足这个数的最小正整数,那么不妨设r=kφ(pa)+s,其中kr除以φ(pa)的商,s是余数,因此0s<φ(pa)。由阶的定义可得,0<s<δpa(g)=φ(pa),gs1(modpa),因此要让gr1(modpa)就只能s=0,也就是能整除。

那么现在我们就知道了φ(pa)|rr|φ(pa+1)。而φ(pa)=pa1(p1),φ(pa+1)=pa(p1)他们只差一个质因数p,因此r{φ(pa),φ(pa+1)}

那么此时可以考虑两个数g,g+ppa+1下的阶u,v{φ(pa),φ(pa+1)}。如果u=v=φ(pa),那么就会有(g+p)φ(pa)1(modpa+1)

二项式定理展开一下,可以得到(g+p)φ(pa)i=0φ(pa)Cφ(pa)ipigφ(pa)i(modpa+1)

代入φ(pa)=pa1(p1)可以得到i=0φ(pa)Cpa1(p1)ipigφ(pa)i

代入组合数计算式得到i=0φ(pa1)[pa(11p)]!i!(φ(pa)i)!pigφ(pa)i,这个式子要对pa+1取模。

然后我们惊喜的发现,在i>1之后,后面的pi和分子里阶乘第一项所包含的pa1就能组合成pa+1的倍数,因此后面的求和项都可以忽略!

那么i=0,1的时候式子的和就是我们要求的数的值。虽然最后的式子很不好看,但是我们回到刚展开的时候用组合数表示的式子,i=0的时候式子就是gφ(pa),根据我们的假设它应该是1。那么i=1的时候式子的值为φ(pa)pgφ(pa)1

两个式子加起来得到1+φ(pa)pgφ(pa)1(g+p)φ(pa)1(modpa+1)

那么我们可以同时减去1,得到φ(pa)pgφ(pa)10(modpa+1)。代入φ(pa)=pa(11p)

得到pa+1gφ(pa)1pgφ(pa)10(modpa+1),前面被减数是模数的倍数直接忽略,而后面那个减数也要是零,就说明gφ(pa)1应该是pa的倍数,也就是我们可以得出gφ(pa)10(modpa),这就与gφ(pa)1 相矛盾。

因此,g,g+p的阶u,v不可能同时为φ(pa),至少有一个为φ(pa+1),那么就至少有一个是pa+1的原根了。

然后,只要它有一个原根,那就说明它的既约剩余系是一个φ(pa+1)阶乘法循环群,这个循环群中生成元gk的个数就是φ(|gk|)=φ(φ(pa+1))

因此对于奇素数的正整数次幂的原根存在性定理得证。


现在考虑奇素数的正整数次幂的两倍

这个很好证这个非常好证这个可好证了哎哟。

首先φ(pa)=φ(2pa),证明方法就是把他们展开,得到pa(11p)=2pa(11p)(112),然后就证完了。

所以我们可以记k=φ(pa)=φ(2pa),那么gk1(modpa),那么在模2pa意义下gk就可能是1,pa+1中的一个。

考虑在模2pa意义下化简(g+pa)k

(g+pa)k=i=0kCkigipa(ki)

因为k=φ(pa)=pa1(p1),而p是奇数所以k是偶数,那么对于所有的Ck1,Ck2,,Ckk1,他们计算式的分子中总有一个k无法消去,因此他们都会是偶数。然后如果i<k那么后面怎么说都会有一个pa的正整数次幂。两个组合起来就可以说明对于0<i<k,第i项是2pa的倍数,直接忽略就好。

那么剩下第0和第k项,他们分别是pakgk

先看pak在模2pa意义下是什么值。乍一看不好做,但是我们可以提取一个pa出来变成papa(k1)

然后不停减去2pa。因为pa(k1)肯定是个奇数因此最后肯定剩下一个pa

那么,对于pa的原根g,如果他也是2pa的原根,那么(g+pa)就不是。否则,如果g不是2pa的原根,那么它在模2pa意义下就应该是pa+1,而(g+pa)kpak+gkpa+pa+11(mod2pa),说明g+pa是一个原根。

于是我们就很愉快证明了2pa也有原根了。

posted @   IdanSuce  阅读(977)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
历史上的今天:
2021-07-27 最长子序列(线性DP)学习笔记
点击右上角即可分享
微信分享提示