自守数的新解法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自守数的新解法
如果某个数的平方的末尾几位数等于这个数,那么就称这个数为自守数。
例如数5,它的平方是25,其尾数依然是5,5就是自守数。
自守数有以下几个特点:
1、每位数都有自守数。
除了一位数有3个自守数1、5、6外,其余每位数都有2个自守数。
2、如果知道了n位数的自守数,其尾数1位数至n-1位数上的数也就是1至n-1位数的自守数。
例如一个三位数的自守数625,其尾数25和尾数5也就是二位数和一位数的自守数。
3、相同位数的2个自守数有这样的关系,即2个n位数的自守数相加等于10n+1。
若k是n位数的自守数,m为任意正整数,则有以下的方程:
k2-k-m·10n=0,即k(k-1)-m·5n·2n=0
因为k与k-1互质,所以5n能整除k,2n能整除k-1;或者2n能整除k,5n能整除k-1。
如k和k-1分别能被5n和2n整除,存在整数a和b,就有k=a·5n,k-1=b·2n,从而得到方程a·5n-b·2n=1。
如k和k-1分别能被2n和5n整除,同样存在整数a和b,
就有k-1=a·5n,k=b·2n,从而得到方程a·5n-b·2n=-1。
所以求n位自守数就可转化为求不定方程a·5n-b·2n=±1的整数解a和b。
因为5n与2n互质,所以存在方程a·5n-b·2n=±1的整数解,这也就从另一方面证明每n位数都有二个自守数。
当然,n越大越好,求出了n位数的自守数,1至n-1的自守数不解自得。
不过,n越大,求解的步骤越长。
下面以n=20为例,求20位数的自守数k。
先求方程a·520-b·220=±1的整数解a和b。
(采用区间逼近法)
[520/220]=90949470
[520/220]+1=90949471
520-[520/220]×220=185905
520-([520/220]+1)×220=-862671
90949470 1 185905 ×4
90949471 1 -862671 +
90949470 1 185905 +
454747351 5 -119051 ×1
545696821 6 66854 ×1
454747351 5 -119051 +
545696821 6 66854 +
1000444172 11 -52197 ×1
1546140993 17 14657 ×3
1000444172 11 -52179 + 1546140993 17 14657 +
5638867151 62 -8226 ×1 7185008144 79 6431 ×1
5638867151 62 -8226 + 7185008144 79 6431 +
12823875295 141 -1795 ×3 45656634029 502 1046 ×1
12823875295 141 -1795 + 45656634029 502 1046 +
58480509324 643 -749 ×1 104137143353 1145 297 ×2
58480509324 643 -749 + 104137143353 1145 297 +
266754796030 2933 -155 ×1 370891939383 4078 142 ×1
266754796030 2933 -155 + 370891939383 4078 142 +
637646735413 7011 -13 ×10 6747359293513 74188 12 ×1
637646735413 7011 -13 +
6747359293513 74188 12 +
7385006028926 81199 -1 ×11
87982425611699 967377 1
7385006028926 81199 -1
k=967377×520=92256259918212890625,和
k=7385006028926×220=7743740081787109376
附:用区间逼近法求am-bn=±1的整数解a,b
设m>n(m和n互质),先造一个区间(a1/b1,a2/b2)。
区间必须满足二个条件:
1、a2b1-a1b2=1,
2、分数n/m落在区间(a1/b1,a2/b2)中。
接下来是把区间(a1/b1,a2/b2)中分成若干个区间,如下图所示:
a1/b1 (k1a1+a2)/(k1b1+b2)(a1+a2)/(b1+b2)(a1+k2a2)/(b1+k2b2) a2/b2其中k1=1,2,……;k2=1,2,……。
因为(k1a1+a2)b1- a1(k1b1+b2)=1,a2(b1+k2b2)-(a1+k2a2)b2=1,满足条件1;
如果n/m落在区间Ⅰ,区间Ⅰ就是缩小的新区间。
否则区间Ⅱ是缩小的新区间。
重复上述方法,将新区间Ⅰ或Ⅱ再进行分割,逐步缩小区间范围。
经过有限的步骤,就能找出am-bn=±1的整数解a,b。
ⅠⅡ
参数a1,b1,a2,b2,k1,k2的选取:
a1,b1,a2,b2可以任意选取,方便起见,可以取:
a1=1,b1=[m/n]+1, a2=1,b2=[m/n]。
设c=a1m-b1n,d=a2m-b2n,那么c<0,d>0。
若|c|>d,则k1=[|c|/d],区间Ⅰ是新区间,否则
k2=[d/|c|],区间Ⅱ是新区间。
若c=-1,a1,b1就是am-bn=-1的解;若d=1,则a2,b2就是am-bn=1的解。
区间逼近法的计算比较简便,详见上面a·520-b·220=±1的例子。