数论学习:分数循环节长度

来源:互联网 发布:mariaarredondo 知乎 编辑:程序博客网 时间:2024/06/05 01:52

分数的循环节

rs0<r<s,对于分数

rs=0.c1c2c3...

b进位制形式。有时候会出现循环情况。即:

存在一个n,k有:

ci+k=ci  ,i>n , 0<ci<b

那么何时会出现循环。何时又不会呢?

显然:

α=rs=c1b1+c2b2+c3b3......

如果α不是循环的,那么必然存在一个数字n有:

αbn=c1c2c3..cn

显然:sbn

这也就是说。每一个整除s的素因子也整出b.

那么符合上述条件的。最小的n必然是最小的。使得sbnn

即:当整除s的每一个素数都整除b时;

则:αb进制展开。小数点后面的长度为n,其中:n为最小的使得sbn的数。

下面证明n是其长度。

如果α的展开长度为n+l.那么有:

αbn=i=1ncibni+i=1lcn+ibi

因为sbn,所以αbn为整数。矛盾。得证。

如果α是循环的。

记:s=cddbc的每一个素因子也是b的素因子。

这也就是说,c是满足c的每一个素因子都是b的且是最大的

n为:cbn最小的n

hc=bn

bn×rs=hrd

A+ed=hrd

显然ed,这是因为:e=hr mod drdbd

显然d=1时。α不循环。

d>1时。
ed
必然循环。因为不存在整数 v使得dbv

现在计算循环节长度。

因为:

A+ed=bni1cibi=i1cibni+bni>ncibi

因为

bni>ncibi<1

所以:

ed=bni>ncibi

令:v=orddb,即vbd意义的阶。(db)

则:

bv=td+1

则:

bved=(td+1)ed=te+ed=bn+vi>ncibi=i=n+1n+vcibn+vi+bn+vi>n+vcibi=i=n+1n+vcibn+vi+bni>nci+vbi

所以:
bni>ncibi=bni>nci+vbi

所以:
ci=ci+v

现在证明:n是自小预循环(证明了这一点自然而然就证明了v为最小循环节)

假设,存在更小的预循环m,且此时最小循环节为k.则:

α=c1b1+c2b2+..+cmbm+j01bjk(cm+1bm+1+...+cm+kbm+k)

j01bjk=j0(1bk)j(1j)=111bk=bkbk1

α=c1b1+c2b2+..+cmbm+bkbk1(cm+1bm+1+...+cm+kbm+k)=c1bm1+c2bm2+...cmb0+cm+1bk1+cm+2bk2+...+cm+kb0bm(bk1)=rcd

因为db。所以cbm,这于n的定义矛盾。

所以此时α的循环节为orddb,预循环节为n.