【证明】关于项链问题中旋转操作的置换群的循环节个数、长度的证明【Pólya】【同余】
2016-02-15 17:09
274 查看
做POJ2154时,对于”置换的循环节的个数为gcd(i, n)"表示疑惑,但是看了很多blog,发现都没有证明这个结论,于是这里做个简单的证明。
设一开始珠子的位置在p点,每次旋转x格。
先证明循环节长度为n / gcd(x, n)。
假设这个珠子走了k次回到p点,那么有
![](http://img.blog.csdn.net/20160215171923584)
减去p,有
![](http://img.blog.csdn.net/20160215172040768)
说明了kx是n的倍数,即
![](http://img.blog.csdn.net/20160215172115722)
又显然有kx是x的倍数
![](http://img.blog.csdn.net/20160215172152334)
我们发现kx既是n的倍数,又是x的倍数。但是我们求的是循环节长度,即k需要最小,又因为x是常量,那么我们当然取n和x的最小公倍数了
![](http://img.blog.csdn.net/20160215172346632)
代换一下lcm
![](http://img.blog.csdn.net/20160215172412679)
消去x,得到k
![](http://img.blog.csdn.net/20160215172442476)
Q.E.D.
现证明循环节个数是gcd(x, n)
因为循环节的长度为n / gcd(x, n),又一共有n个元素,且这n个元素对称,那么显然循环节个数就是gcd(x, n)。
Q.E.D
设一开始珠子的位置在p点,每次旋转x格。
先证明循环节长度为n / gcd(x, n)。
假设这个珠子走了k次回到p点,那么有
减去p,有
说明了kx是n的倍数,即
又显然有kx是x的倍数
我们发现kx既是n的倍数,又是x的倍数。但是我们求的是循环节长度,即k需要最小,又因为x是常量,那么我们当然取n和x的最小公倍数了
代换一下lcm
消去x,得到k
Q.E.D.
现证明循环节个数是gcd(x, n)
因为循环节的长度为n / gcd(x, n),又一共有n个元素,且这n个元素对称,那么显然循环节个数就是gcd(x, n)。
Q.E.D
相关文章推荐
- 环信聊天列表不刷新数据
- Android color集锦
- 青瓷引擎问答集锦(一)
- hdu 1226 超级密码【BFS】
- Ajax中Get请求与Post请求的区别
- 使用jQuery和CSS3制作数字时钟(CSS3篇)
- spring学习笔记(一)快速搭建一个spring boot应用
- Git版本控制:Git高级教程
- 开启博客之旅
- WebApp开发技巧精华总结
- Git高级教程
- Too many constants, the constant pool for ***_jsp would exceed 65536 entries
- flex添加 播放 gif图片
- 位运算及相关面试题汇总
- USACO 1.3 barn1
- install opencv3 with python2.7 bindings on Mac using Hombrew and git
- moveTaskToBack Android应用退到后台,类似按下Home键
- switch-case语句忘记加break的后果
- select for update 行级锁,表级锁
- solr 学习