标题: 3X+1问题(角谷猜想)程序测试数据 [打印本页] 作者: hmz20128 时间: 2012-9-15 18:24 标题: 3X+1问题(角谷猜想)程序测试数据 数海聚珠网【程序体验】中的26号程序是专门用来测试3X+1问题的,在没有测试之前,对于一些概念问题先做一个介绍,下文选自:《三思科学》电子杂志,创刊号,2001.07.01文章作者 异调 ! # W& f) @9 d" g
3x+1问题 % H8 ~# n8 Q' h3 Z2 H4 z一、一个简单的问题% V2 C v1 T1 k5 L1 b1 N) w
当我们阅读数学史时,会有这样一种印象,数学家们首先研究简单的问题,然后研究越来越复杂的问题。经常性地,高深的数学问题是非常复杂的。只是为了理解问题,我们就得学习非常多的数学知识;而为了解决它,那就得用更复杂的数学知识了。就算我们在学校里的数学考试也是如此,最后一题经常被叫做“最后一大题”,“一大题”是说它表达复杂,里面还有一二三四的小题,要理解题意就得几分钟的时间。弄不好还理解错了,搞得整道题都白白做,被扣去许多分。 & G7 o* }1 S& ?: l. W, B7 r / w% I7 Q5 N+ f+ o! D可是数学里不只有这些吓人的“大题”——我是说,数学里还有吓人的“小题”。这样的“小题”理解起来非常容易,却让无数数学家大跌眼镜,怎么冥思苦想也不得其解。3x+1问题大概就是其中最著名而又最简单的一个。它简单到大概任何一个会除2和会乘3的人(比如说,没文化但是经常买菜的老奶奶)都能理解它的意思,但是困难得让数学家至今也没有找到好好对付它的方法。 # }: u( c R- E8 c- }% `7 {) p ' [ a$ t9 n0 D1 m9 z任取一个自然数,如果它是偶数,我们就把它除以2,如果它是奇数,我们就把它乘3再加上1。在这样一个变换下,我们就得到了一个新的自然数。如果反复使用这个变换,我们就会得到一串自然数。, N0 } g/ B G- _+ m! W
& C" s* I) u: x9 d
比如说我们先取5,首先我们得到3*5+1=16,然后是16/2=8,接下去是4,2和1,由1我们又得到4,于是我们就陷在4→2→1这个循环中了。. \, |* e: t* {6 ]" P5 x
( E. ]/ k0 G3 g( [
再举个例子,最开始的数取7,我们得到下面的序列:7→22→11→34→17→52→26→13→40→20→10→5→16→8→4→2→1这次复杂了一点,但是我们最终还是陷在4→2→1这个循环中。0 R2 b1 r7 r2 j8 q9 ]- ^5 p
' y. V2 ]0 F! e$ E. k; T. o* D
随便取一个其他的自然数,对它进行这一系列的变换,或迟或早,你总会掉到4→2→1这个循环中,或者说,你总会得到1。已经有人对所有小于100*2^50=112589990684262400的自然数进行验算,无一例外。 2 h% j% u* M- e4 R5 _ 4 E% R1 V( Z* N那么,是否对于所有的自然数都是如此呢? 1 U5 R; N J- [$ d" r) I* s* B5 N) z/ b7 N+ O- g- z
这看起来是个多么简单的问题啊! ( l; t4 ]3 g5 a8 i% F二、克格勃的阴谋 ) H+ C- J9 g: M1 @! _0 e" {这个问题大约是在二十世纪五十年代被提出来的。在西方它常被称为西拉古斯(Syracuse)猜想,因为据说这个问题首先是在美国的西拉古斯大学被研究的;而在东方,这个问题由将它带到日本的日本数学家角谷静夫的名字命名,被称作角谷猜想。除此之外它还有着一大堆其他各种各样的名字,大概都和研究和传播它的数学家或者地点有关的:克拉兹(Collatz)问题,哈斯(Hasse)算法问题,乌拉姆(Ulam)问题等等。今天在数学文献里,大家就简单地把它称作“3x+1问题”。+ _$ P9 u4 A% K- [
! Q0 K6 I, |5 N( w0 `角谷静夫在谈到这个猜想的历史时讲:“一个月里,耶鲁大学的所有人都着力于解决这个问题,毫无结果。同样的事情好象也在芝加哥大学发生了。有人猜想,这个问题是苏联克格勃的阴谋,目的是要阻碍美国数学的发展。”不过我对克格勃有如此远大的数学眼光表示怀疑。这种形式如此简单,解决起来却又如此困难的问题,实在是可遇而不可求。 z1 s8 k) B- D! L& P' `2 s; r1 W9 I( x @0 ^
数学家们已经发表了不少篇严肃的关于3x+1问题的数论论文,对这个问题进行了各方面的探讨,在后面我会对这些进展作一些介绍。可是这个问题的本身始终没有被解决,我们还是不知道,“到底是不是总会得到1?”4 n( a, j& }4 s* s
1 [ z+ T) t+ Q0 }; v- L, N在1996年B. Thwaites悬赏1100英镑来解决这个问题。我写一下这个悬赏的文献:Thwaites, B. “Two Conjectures, or How to win £1100.”Math.Gaz. 80, 35-36, 1996,好在大家万一证出来时知道跑哪里去领奖。看在钱大爷的份上,3x+1问题于是又多了个名字,叫Thwaites猜想。 8 y D: o b$ s4 T
+ P% J# a1 ?8 l- J5 l' n要是真的有这么一个自然数,对它反复作上面所说的变换,而我们永远也得不到1,那只可能有两种情况。0 Y. l) c* b( Q+ I
. D, w2 C+ E& j* Q$ `
1)它掉到另一个有别于4→2→1的循环中去了。我们在后面可以看到,要是真存在这种情况,这样一个循环中的数字,和这个循环的长度,都会是非常巨大的; 3 ~0 E5 [$ I" A$ Z0 g' T2)不存在循环。也就是说,每次变换的结果都和以前所得到的所有结果不同。这样我们得到的结果就会越来越大(当然其中也有可能有暂时减小的现象,但是总趋势是所得的结果趋向无穷大)。 / O$ E5 }$ [, N7 W1 i& y/ x# P/ f# d, J! @' v \- U2 U
因为这是个形式上很简单的问题,要理解这个问题所需要的知识不超过小学三年级的水平,所以每一个数学爱好者都可以来碰碰运气,试试是不是能证明它。不过在这里我要提醒大家的是,已经有无数数学家和数学爱好者尝试过,其中不乏天才和世界上第一流的数学家,他们都没有成功。如果你在几小时内就找到了一个“证明”,那么把它一步一步地严格地写下来,看看是不是严密正确(我可以肯定它是错的,我这样的肯定要冒的危险绝不超过连续中十次彩票头奖的概率,既然我不买彩票,我就没道理不这么肯定:-))。事实上,在互联网上已经有一些错误的“证明”。据说还有个数学爱好者跑到公证处去公证他的“证明”,生怕别人把他的好主意偷跑了。 : Z- q# T% }0 D- a( H! ~1 v4 o# X B) N, L
二十多年前,有人向伟大的数论学家保尔·厄尔多斯(Paul Erdos)介绍了这个问题,并且问他怎么看待现代数学对这问题无能为力的现象,厄尔多斯回答说:“数学还没有准备好来回答这样的问题。”" I5 k8 b+ d" ]/ @# S7 Q
三、一些概念,一些纪录 3 F7 B: M$ U1 D( O9 k虽然证不出猜想,但是数学家们还是得到了许多很可能很有用的结论。让我们先来定义几个概念,然后再来介绍这些结论。 " ^) A1 {+ @& C; c8 O a 9 ]( \6 K: D1 ] m从一个自然数开始,用上面这个变换,我们可以计算出一串自然数的序列。为了形象起见,我们把这串数列叫做以最初用来开始计算的那个自然数命名的“航班”。/ U# v/ P" j( Q0 ? H& b2 }
比如说,第6次航班就是 6→3→10→5→16→8→4→2→1 5 |" f8 K$ N. e# p2 n我们把一个航班里的最大数字,叫做这个航班的“最大飞行高度”。比如说,第6次航班的最大飞行高度就是16。我们把航班在数字1“着陆”之前的数字个数(最初的数字包含在内,但1不包含在内),叫做这个航班的“航程”(特别定义第1次航班的航程为0)。第6次航班的航程就是8。如果真有自然数在此变换下永远达不到1,那么这个航班的航程就是无穷了。- h7 l$ u/ j$ j0 m2 R+ C5 v
$ ^* P4 P* v& u- C8 m
接下去的概念稍微有点复杂。我们把从起点开始(但不包括起点)连续的不小于起点的数字的个数,叫作“保持高度航程”。举一个例子来说明这个概念比较方便: 8 [' {' d. E" c2 A1 Y第11次航班是 11→34→17→52→26→13→40→20→10→5→16→8→4→2→1 7 r4 k! W7 P- J G$ y$ s我们看到从起点开始,34,17,52,26,13,40,20都不小于起点11,共有7个数字,所以第11次航班的保持高度航程为7。后面的航程中虽然还有数字16大于起始点11,但是它不被算在保持高度航程里了。一个最简单的推论就是,偶数次航班的保持高度航程总是0,因为开始就除以2,跌到较低的高度去了。' o- F2 X, q+ B9 g4 C$ W
8 a- ]& C0 A. ]2 A为什么我们对一个航班的保持高度航程感兴趣?因为如果所有航班的保持高度航程都是有限的话,3x+1问题就成立了。让我们假设已知所有航班的保持高度航程都是有限的,用数学归纳法来证明3x+1问题,也就是所有的航班都在1上“着陆”。我们已经知道第1到第5航班都是在1上着陆的,现在假设对于所有小于n的数字k,第k次航班都在1上着陆,我们来看看第n次航班的情况:由于按假设它的保持高度航程是有限的,所以它迟早会降落在一个比n小的数字上——于是按归纳假设它就会降落在1上! ' o( s9 {4 o! Z. }8 t( @" |! v! D: y- W% G+ _4 m+ E7 s
我们可以对开始的30班航班列出一个相关数据表来:) N3 O) X+ ~) l6 ?, A, e' F