数论学习:分数循环节长度
来源:互联网 发布:mariaarredondo 知乎 编辑:程序博客网 时间:2024/06/05 01:52
分数的循环节
令r⊥s 且0<r<s ,对于分数
rs=0.c1c2c3...
的b 进位制形式。有时候会出现循环情况。即:
存在一个n,k 有:
ci+k=ci ,其中:i>n , 0<ci<b
那么何时会出现循环。何时又不会呢?
显然:
α=rs=c1b1+c2b2+c3b3......
如果α 不是循环的,那么必然存在一个数字n 有:
αbn=c1c2c3..cn
显然:s∣bn
这也就是说。每一个整除s 的素因子也整出b .
那么符合上述条件的。最小的n 必然是最小的。使得s∣bn 的n
即:当整除s 的每一个素数都整除b 时;
则:α 的b 进制展开。小数点后面的长度为n ,其中:n 为最小的使得s∣bn 的数。
下面证明n 是其长度。
如果α 的展开长度为n+l .那么有:
αbn=∑i=1ncibn−i+∑i=1lcn+ibi
因为s∣bn ,所以αbn 为整数。矛盾。得证。
如果α 是循环的。
记:s=cd 且d⊥b ,c 的每一个素因子也是b 的素因子。
这也就是说,c 是满足c 的每一个素因子都是b 的且是最大的
令n 为:c∣bn 最小的n
令hc=bn
bn×rs=hrd
令
A+ed=hrd
显然e⊥d ,这是因为:e=hr mod d 且r⊥d 且b⊥d
显然d=1 时。α 不循环。
当d>1 时。ed 必然循环。因为不存在整数 v 使得d∣bv
现在计算循环节长度。
因为:
A+ed=bn∑i≥1cibi=∑i≥1cibn−i+bn∑i>ncibi
因为
bn∑i>ncibi<1
所以:
ed=bn∑i>ncibi
令:v=orddb ,即v 为b 模d 意义的阶。(d⊥b )
则:
bv=td+1
则:
bved=(td+1)ed=te+ed=bn+v∑i>ncibi=∑i=n+1n+vcibn+v−i+bn+v∑i>n+vcibi=∑i=n+1n+vcibn+v−i+bn∑i>nci+vbi
所以:bn∑i>ncibi=bn∑i>nci+vbi
所以:ci=ci+v
现在证明:n 是自小预循环(证明了这一点自然而然就证明了v为最小循环节)
假设,存在更小的预循环m ,且此时最小循环节为k .则:
α=c1b1+c2b2+..+cmbm+∑j≥01bjk(cm+1bm+1+...+cm+kbm+k)
∑j≥01bjk=∑j≥0(−1bk)j(−1j)=11−1bk=bkbk−1
α=c1b1+c2b2+..+cmbm+bkbk−1(cm+1bm+1+...+cm+kbm+k)=c1bm−1+c2bm−2+...cmb0+cm+1bk−1+cm+2bk−2+...+cm+kb0bm(bk−1)=rcd
因为d⊥b 。所以c∣bm ,这于n 的定义矛盾。
所以此时α 的循环节为orddb ,预循环节为n .
阅读全文
1 0
- 数论学习:分数循环节长度
- 非负分数的循环小数位长度
- 循环节长度
- 循环节长度
- xdu_1077:循环节长度
- 循环节长度
- 循环节长度
- 循环节长度
- HDU 2522 有理分数的循环节
- UVa 202 (分数最小循环节)
- 1/n循环节长度
- 第六届蓝桥杯循环节长度
- C++ 学习笔记_0006_循环(累加分数、幂、阶乘)
- 循环节的长度,循环节,循环次数(kmp)
- 打印分数---循环switch
- 第六届蓝桥杯java试题-循环节长度
- 蓝桥杯 历届试题 循环节长度
- 【KMP】 hdu3746 kmp求循环节长度
- Spring的四种依赖注入方式
- Python 练习实例2
- idea上传项目至码云的完整步骤
- 线性代数4——A的LU分解
- 【牛腩新闻发布系统】--Repeater与GridView
- 数论学习:分数循环节长度
- javascript 简单画心型线
- 【笔记】Android Studio+Github+JitPack生成Compile依赖
- 三月总结
- Centos7 下修改日期
- Struts2+jsp上传和下载文件
- JavaShowAlgorithm-使用2个队列实现栈
- 【JavaEE学习笔记】JSON解析_原生JSON,GSON,FastJSON
- [UnityShader基础]Shader土地上的语言们