1 亲和图的定义
为研究因数和函数F(n)(正整数n除n以外的正因数之和)的性质以及完全数、相亲数对、多元亲和数链等问题,定义一个无限有向图——亲和图。
亲和图的顶点集与非负整数集一一对应,(下文中将用某非负整数指代它所对应的顶点),对顶点n,若F(n)=m,则从n到m连一条有向边(n指向m),注意1指向0,0指向自己。
由以上定义得知:
(1)亲和图的所有性质为正整数集固有,整个图随正整数集和因数定义的建立而确定。
(2)亲和图中每个顶点出度都是1;入度不确定。
(3)完全数6,28等引出的边指向自己。
(4)相亲数对(220,284)等在图中呈现为一个两元环(220指向284;284指向220)。
我们希望得到图的其他性质,但无限图是不可能完全画出的。我们采取以下两个手段:一方面,我们希望知道对给定的一个点,哪些点指向这个点;另一方面,由于点给定时,它引出的路线也唯一确定,我们希望追踪这条路线通向哪里。
2 入度求解
0的入度为2,0和1指向它。
1的入度为无穷大。因为一个数直接指向1当且仅当它为素数,而素数有无穷多个。
对于0、1以外的数,我们说明,尽管图是无限的,每个顶点的入度只有有限多。
命题:
若F(n)=m,则n≤(m>1)
证明:
显然n是合数。当n不是平方数,取它除1以外最小的因数i,则n/i(不等于i)也是n的因数。此时有:
亦即
当n是平方数,它至少含因数,故有:
等号当且仅当是除1以外n的唯一因数时取得。
证毕。
根据这一命题,我们很容易写出求解入度的程序。
程序1:
功能:求m到n之间每个数的入度和指向它的所有顶点,结果保存于D:/1.txt。
使用:输入m n;
作者:Nithouson
代码:(C++)
#include <stdio.h> #include <stdlib.h> int SumofDivisors(int n) { int i,s=1; for(i=2;i*i<n;i++) { if(n%i==0) s+=i+n/i; } if(i*i==n) return s+i; else return s; } int main() { FILE*pad; pad=fopen("D://1.txt","w"); int m,n,con,i; scanf("%d %d",&m,&n); int*s=(int*)malloc((n*n)*sizeof(int)); for(i=2;i<=n*n;i++) s[i]=SumofDivisors(i);//空间换时间,预存所有因数和。 for(int j=m;j<=n;j++) { fprintf(pad,"%d ",j); con=0; for(i=2;i<=n*n;i++) { if(s[i]==j) { con++; fprintf(pad,"%d ",i); } } fprintf(pad,"(%d)\n",con); } free(s); return 0; }
讯享网
我用此程序计算了1-1000的所有顶点入度,得出以下信息:
(1)有些非0数入度为0,如2、5、52、88、96等。事实上,1到1000中共有89个数入度为0,而且它们中只有5是奇数。
(2)100以内的入度最大值为9,在91和97取得;1000以内的最大值为56,在841取得。
(3)奇数入度通常比附近的偶数入度多。事实上,2-1000中奇数的平均入度为17.060,而偶数的平均只有1.409,差异非常明显。(10000以内偶数入度的最大值仅为5)
3 顶点集的盈亏
对一个顶点集,若总入度减总出度为正,称为盈余;否则称为亏损。
经计算,2-100盈余162;2-1000盈余8234。这或许意味着F(n)有整体减小的趋势。
4 路径追踪
从一个顶点出发,不断沿引出的边前进,其实质是F(n)无限次迭代的过程。我们设想以下结果。
(1)路线最终到达1,之后停在0。
(2)路线进入一个闭环中(可能为完全数、相亲数对或多元亲和数链),之后一直在闭环中循环。
(形式上0也可理解为一个闭环,但(1)(2)的成因有很大不同,故分成两种情况)
是否只有以上这两种结局呢?理想上希望如此,但这尚需证明。而且,程序必须满足有限步终止原则,并且不能超出整数变量表达范围。所以追加两种情形:
(3)某一步的值超出int的表达范围;
(4)有限步后(这里定为10000步)尚未达成(1)(2)(3)中任何一条。
条件编译程序如下,它可选择输出希望获取的四种情况之一。
程序2:
功能:求m到n之间每个数的前进路线和路线长度,结果保存于D:/1.txt。
使用:输入m n;
作者:Nithouson
代码:(C++)
讯享网#include <stdio.h> #include <stdlib.h> #define ONE 1 //到1终止 #define LOOP 2 //进入闭环 #define BEYONDLIM 3 //超过 #define OVERLONG 4 //运行超过10000次 int SumofDivisors(int n) (同程序1) int main() { FILE*pad; pad=fopen("D://1.txt","w"); int m,n; const int MAX=10000; //迭代次数上限 scanf("%d %d",&m,&n); int s[MAX]; for(int i=m;i<=n;i++) { int j,br=0,p; s[0]=i; for(j=1;j<MAX;j++) { s[j]=SumofDivisors(s[j-1]); if(s[j]<0) //超出后int会读成负数 { #ifdef BEYONDLIM for(p=0;p<=j-1;p++) { fprintf(pad,"%d->",s[p]); } fprintf(pad,"Beyond Limit\n"); #endif // BEYONDLIM break; } if(s[j]==1) { #ifdef ONE for(p=0;p<=j-1;p++) { fprintf(pad,"%d->",s[p]); } fprintf(pad,"1 (%d)\n",j); #endif // ONE break; } for(int k=0;k<=j-1;k++) { if(s[j]==s[k]) { #ifdef LOOP for(p=0;p<=j-1;p++) { fprintf(pad,"%d->",s[p]); } fprintf(pad,"%d (%d)[%d]\n",s[j],j,j-k); //j为前进总步数,j-k为闭环长 #endif // LOOP } if(br) { br=0; break; } } if(j==MAX) { #ifdef OVERLONG for(p=0;p<=j-1;p++) { fprintf(pad,"%d->",s[p]); } fprintf(pad,"To Be Continued\n"); #endif } } return 0; }
对以内的数进行分类追踪,发现至少有80723个数都回到1。至少有2073个数进入闭环。有17204个数超出int范围,它们中也会有一部分最终回到1,另一部分进入闭环,是否还有一部分真的永不重复(那意味着序列无上界)?没有数超出次数的界限。
5 亲和图的结构与闭环
到这里我们对亲和图的结构有了大致的认识。1(或0)是大多数数的归宿,如百川汇海。完全数、相亲数,亲和数链则是一少部分数的吸引子。
对1以外的任一个节点,我们可以任意有限阶数地追踪它的来源,即先求指向它的数,再求指向指向它的数的数,以此类推。对于闭环,我们也可以对它进行来源追踪,称为闭环的来源k阶展开。
10万以内的完全数只有6,28,496,8128四个。6的3阶展开为(图1)
10万以内的相亲数共13对,以220和284为例作1阶展开(图2)

三元亲和数链在较小整数范围内没有解。值得一提的是五元亲和数链12496-14288-15472-14536-14264,五个数大小类似又都不大,用来象征奥运五环、五洲和谐再合适不过了。另一个较小的环有28元,为14316-19116-31704-47616-83328-----------------97946-48976-45946-22976-22744-19916-17716。用程序2的LOOP模式,再加环长不小于3的条件,就能发现这个环。我还用程序2验证了:涉及10万以内数,长度不小于3,且没有数超出int范围的闭环只有以上的一个5元环和一个28元环。
6 未竟的事业
亲和图中的重大问题还有很多有待解决,如:
(1)任一点出发最终回到1或进入闭环的猜想是否正确?
(2)如何解释奇数的入度普遍多于偶数这一事实?
(3)亲和图中是否存在孤立结构(即一个顶点集,既没有从集合内指向集合外的边,又没有从集合外指向集合内的边)?
对于闭环,也有一系列问题。相亲数是否有无穷多对?两数差最小是多少,是不是26(1184,1210)?差最大是否有无穷大?三元及以上的亲和数链,是否有无穷多?
感觉上说,如果说完全数尚有规律可把握,多元的亲和数链则显得离散,有巧合的成分(只要算出的F(n)之前碰巧出现过,就成环了)。每个数因数分解性质的不同,为理论上整体把握亲和图的性质带来了困难。更大规模的计算与绘图,或许会给我们带来更多新发现。
2017年1月8日
17:39:28

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/31148.html