请输入您要查询的百科知识:

 

词条 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/16 12:29:03