词条 | 3x+1猜想 |
释义 | 3x+1猜想: 所谓的3x+1猜想就是:任取一个自然数,如果它是偶数,我们就把它除以2,如果它是奇数, 我们就把它乘3再加上1。在这样一个变换下,我们就得到了一个新的 自然数。如果反复使用这个变换,我们就会得到一串自然数,猜想就是:反复进行上述运算后,最后结果为1。 比如说我们先取5,首先我们得到3*5+1=16,然后是16/2=8,接下去 是4,2和1,由1我们又得到4,于是我们就陷在4→2→1这个循环中了。 再举个例子,最开始的数取7,我们得到下面的序列: 7→22→11→34→17→52→26→13→40→20→10→5→16→8→4→2→1 这次复杂了一点,但是我们最终还是陷在4→2→1这个循环中。 随便取一个其他的自然数,对它进行这一系列的变换,或迟或早,你 总会掉到4→2→1这个循环中,或者说,你总会得到1。已经有人对所 有小于100*250=112589990684262400的自然数进行验算,无一例外。 数学里还有吓人的"小题"。这样的"小题"理解起来非常容易,却让无数数学家大 跌眼镜,怎么冥思苦想也不得其解。3x+1问题大概就是其中最著名而 又最简单的一个。它简单到大概任何一个会除2和会乘3的人(比如说, 没文化但是经常买菜的老奶奶)都能理解它的意思,但是困难得让数 学家至今也没有找到好好对付它的方法。 这个问题大约是在二十世纪五十年代被提出来的。在西方它常被称为 西拉古斯(Syracuse)猜想,因为据说这个问题首先是在美国的西拉古 斯大学被研究的;而在东方,这个问题由将它带到日本的日本数学家 角谷静夫的名字命名,被称作角谷猜想。除此之外它还有着一大堆其 他各种各样的名字,大概都和研究和传播它的数学家或者地点有关的: 克拉兹(Collatz)问题,哈斯(Hasse)算法问题,乌拉姆(Ulam)问题等 等。今天在数学文献里,大家就简单地把它称作"3x+1问题"。 角谷静夫在谈到这个猜想的历史时讲:"一个月里,耶鲁大学的所有 人都着力于解决这个问题,毫无结果。同样的事情好象也在芝加哥大 学发生了。有人猜想,这个问题是苏联克格勃的阴谋,目的是要阻碍 美国数学的发展。"不过我对克格勃有如此远大的数学眼光表示怀疑。 这种形式如此简单,解决起来却又如此困难的问题,实在是可遇而不 可求。 数学家们已经发表了不少篇严肃的关于3x+1问题的数论论文,对这个 问题进行了各方面的探讨,在后面我会对这些进展作一些介绍。可是 这个问题的本身始终没有被解决,我们还是不知道,"到底是不是总 会得到1?" 在1996年B. Thwaites悬赏1100英镑来解决这个问题。我写一下这个 悬赏的文献:Thwaites, B. "Two Conjectures, or How to win £1100."Math.Gaz. 80, 35-36, 1996,好在大家万一证出来时知 道跑哪里去领奖。看在钱大爷的份上,3x+1问题于是又多了个名字, 叫Thwaites猜想。 要是真的有这么一个自然数,对它反复作上面所说的变换,而我们永 远也得不到1,那只可能有两种情况。 1)它掉到另一个有别于4→2→1的循环中去了。我们在后面可以看到, 要是真存在这种情况,这样一个循环中的数字,和这个循环的长度, 都会是非常巨大的; 2)不存在循环。也就是说,每次变换的结果都和以前所得到的所有结 果不同。这样我们得到的结果就会越来越大(当然其中也有可能有暂 时减小的现象,但是总趋势是所得的结果趋向无穷大)。 3x+1问题算法的c语言编程,其实很简单,初学c语言的学生也能明白: #include<stdio.h> long main() { long x,i,t; printf("enter x:"); scanf("%d",&x); do { if(x%2==0) i=x/2; else i=3*x+1; printf("%d ",i); x=i; } while(x!=1); return 0; } 如图所示为1百万的执行结果: |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。