& ?5 ?4 Y8 B' C' \3 m; K1 w$ Z最大飞行高度记录航班就是那些最大飞行高度记录大于所有它前面的航班的那些航班,现在已知的有76个,最大的是10709980568908647次航班,到达了350589187937078188831873920282244的高度。 0 T6 U) D; ?3 q# }/ |& ^. V
2 Z+ S* s, P# u. H8 U
对于一个固定航班N,考虑它在1着陆之前所作的变换,如果把其中除以2的变换称为“偶变换”并记为E(N),而把乘以3再加1的变换称为“奇变换”并记为O(N)。数学家已经证明,O(N)/E(N)<log2/log3。我们注意到,对有些航班来说,O(N)/E(N)非常接近于log2/log3≈0.63092975……。有猜想认为它会越来越接近这个数字(也有相反的猜想,认为不会无限接近),所以大家为此设立了另一个纪录,就是这个比值比所有以前的航班更接近log2/log3的航班。这样的纪录不多, 7 @8 }( m, D6 T" R# Y: @现在已知的有15个,其中最后一个是N=100759293214567,I(N)/P(N)≈0.604938。值得一提的是N=104899295810901231,它的这个比值还要更靠近,达到0.605413,但是我们不知道它是否是一个纪录,也就是说,我们不知道所有比它小的航班里,是否还有比这个比值更靠近log2/log3的。 ' @6 r( Q6 g0 y3 B9 g* \% Y1 \7 b8 x7 z" k
我们知道,对于任何p,总有至少一个航班,它的航程是p:2p→2p-1→2p-2→……→4→2→13 m5 t3 A2 u* U2 O! j
但是一般并不需要这么大的航班,就可以达到航程p。在2000年有人提出要找到最小的航班号,使得它的航程恰好是2000。现在最好的纪录是第67457283406188652次航班,但谁都不知道这是不是最小的航程为2000的航班。+ [8 j1 O# T0 H1 m' z1 o8 |5 [
# \& Y1 i8 b. F' W, s! L
计算一个航班的算法是非常简单的——只要除2或乘3加1。但是为了检验大量的和航次巨大的航班,巧妙的编程方法是非常重要的。上面的那些纪录都是由几台类似于我们平时使用的那样的计算机得到的结果。但是如果没有好好地思考和编程,光是硬算,那么使用最先进的计算机恐怕也得不到这样的结果。 ! i+ e1 M& X2 ^& X" P5 R# g3 z# U! I: ?" p6 k3 c- V9 H
为了验证一个航班的确在1上着陆,并不一定需要把结果计算到1。如果你已经验证了所有航次小于n的航班都在1上着陆,那么对于第n次航班,你只要把结果计算到一个小于n的数m就可以了——我们已经验证过第m次航班在1上着陆。事实上,如果我们只要计算到一个以前的航班飞行时到达过的数值就可以了,当然这需要记住以前已经到达过的比较高的高度,这里也必须巧妙地编程使得这样的记忆所使用的内存比较少。) `2 G0 y" r4 [
+ L# p6 B9 f; c0 L! F' a( k+ q2 `3 U更重要的是使用数学方法去减少计算量。比如说,任何n=4k+1的航班最终都会飞到一个比n更小的高度。首先这是奇数,我们乘3加1得到12k+4,然后连除两次2,就有3k+1<n。所以我们没有必要费功夫去验证4k+1型的航班。另外偶数次航班第一次变换就被除以2,降低了高度,所以同样也不需专门验证。只用这样一个小技巧,我们就使计算量减少到原来的25%。 + q' N3 |+ A4 m* j- _+ _# @% D* P; ]$ Y) k7 Z
如果按照这样的思路下去,我们同样不需要考虑16k+3型的航班,只要考虑到前面的飞行记录:; F b/ k; T( \& _7 n7 f
16k+3→48k+10→24k+5→72k+16→36k+8→18k+4→9k+2→…… ) o6 W# p. I7 D$ O而9k+2<16k+3。( z( p8 W+ Q9 L( U- s
" [. v" o- ]* o) N* u. S/ B/ U. b M/ l6 d我们可以这样追踪下去,考虑256k+i型的航班,其中i取0到255,那么我们会发现我们需要考虑的类型只有i=27、31、47、63、71、91、103、111、127、155、159、167、191、207、223、231、239、251、255。这样我们要作的计算只有最初的8%不到。 : K S: i* A: T4 e$ }. E0 c, y, q
而Eric Roosendaal得到上面那些纪录的程序,是建立在对65536k+i型航班分析的基础上的,其中只有1729种航班需要真正的检验(只有原来计算量的2.6%)。他的程序还使用了其它的算术技巧,以及可以同时计算好几个航班。Tomas Oliveira e Silva进一步改进了这些技巧,从而使得他成为现在3x+1问题验证的世界纪录保持者(他的计算从1996年8月开始,到2000年4月结束,其间使用了两台133MHz和两台266MHz的DEC Alpha计算机)。Eric Roosendaal还在和其他人一起合作进行计算(包括再次验证以前的结果),如果你愿意加入这个研究项目的话,可以去访问上面给出的他的主页。 $ J; l' q! p( B3 q0 R7 S) P四、理论结果 , `" K. ]" O, H4 x只要稍微动一下脑筋,我们就知道3x+1问题和下面几个命题都是等价的: 4 U8 Y" i" C( G: P% a. }$ F4 K0 K; m1)所有的航班的航程都有限; / R, M) n- G% U0 k5 M& u- G2)所有的航班的保持高度航程都有限;) X, T2 D: A! a" t; [2 h
3)所有的航班中的偶变换的次数都有限; & y8 l \% h' _3 K6 r4)所有的航班中的奇变换的次数都有限; / I3 K2 P' l! [1 v5)所有的航班的保持高度航程中偶变换的次数都有限;- |* G' q& M: Z5 n- q. M
5)所有的航班的保持高度航程中奇变换的次数都有限。 . L& \; ?; l3 \& F : B( k) P5 t8 tR. Terra和C. Everett证明了,“几乎所有的航班都会下降到它的起始点以下”,也就是说“几乎所有的航班的保持高度航程都有限”。 7 ]9 ?1 C7 M4 V0 F: W( L4 Q这里的“几乎所有”是有确定的数学意义的,它是指: M7 w- [5 j$ d5 h& g% A3 o! F5 [" A" z4 r' k
——存在一个自然数n1,在所有小于n1的航班里,最多只可能有1/10的航班,它们的保持高度航程无限; 5 S ~/ t5 J1 ~* {; l+ L——存在一个自然数n2,它比上面的n1要大,在所有小于n2的航班里,最多只可能有1/100的航班,它们的保持高度航程无限; . [, x( T" o# @ j; w——存在一个自然数n3,它比上面的n2要大,在所有小于n3的航班里,最多只可能有1/1000的航班,它们的保持高度航程无限; 8 K; x8 Y0 Z6 B/ e3 @! {1 P t——等等等等……& ~6 Q) k: q/ \. {6 g: T
. _. `7 _3 K& C6 ~0 {# F' f5 l
这好象很接近证明“所有的航班的保持高度航程都有限”了,于是很接近证明猜想本身了。但是好好想想,这个结论只不过是说明保持高度航程无限的航班会越来越稀少罢了,它们还是有可能存在的……更糟糕的是,这个结论一点也没有排除有其它循环存在的可能。1 B5 P6 [$ e7 p H9 _3 J/ I$ w- ?
1 j* z7 w% z, n' A
对于在1上着陆的航班,数学家们也得到了一些结果。他们证明了,存在一个常数c,当n足够大的时候,在比n小的航班中,能够在1上着陆的航班的个数大于等于nc。在1978年R. Crandal首先给出c=0.05,虽然小了点,但毕竟是开头一步;然后J. Sander给出c=0.3;在1989年I. Krasikov得到c=0.43;1993年G. Wirsching得到c=0.48;最后在1995年D. Applegate和J. Lagarias得到c=0.81。看起来我们越来越接近c=1这个最终目标了。可是我们不知道现在用来得到c的方法是否还可以再用下去,就好象在试图征服哥德巴赫猜想的过程中,陈景润用来证明1+2的方法,似乎不能用来证明1+1了。 + \' D1 a+ G- @ 3 V- Y2 A6 {' x, o1995年的这个证明相当特殊。它使用了计算机程序来解一个十分巨大的方程组,所以这个证明不能用手工来验证。在论文中,我们看见的不是一个关于c=0.81的定理的证明,而是一个关于如何写出这个巨大方程组的说明,和由程序计算出来的结果,以及如何使用这些结果来解释c=0.81。其他的数学家如果想验证这个结果,必须首先看懂关于方程组的证明和那些解释,再按照里面的说明来写一个程序(很复杂的!),运行它,再看看结果是否和文章中的相同。目前四色定理的* w7 z& a, E3 b/ p! ~0 V; M2 F7 q) W
证明也是如此,所以数学家对此很不满意。# K& i# E# R9 l K# W% Y
4 b" o: D( |% H( l* _1 n
还有一些结果是关于如果有其他不同于4→2→1的循环存在时,对这样的循环的性质的研究。R. Crandal和N. Yoneda在1978年证明,如果这样一个另外的循环存在的话,那么它的长度(就是在这个循环中数字的个数,比如说循环4→2→1的长度就是3)一定要大于275000。1993年这个体积增大到17087915,最近的结果是102225496。这些结果是通过分析包括我们前面提到的各种纪录得到的,所以这些结果我们还是不能完全通过手工来验证。我们看到,如果真有另外的循环存在的话,那一定是非常非常巨大的! ; ~" r# W, j& `! _五、启发式论证 " Q& x! }/ w P* n0 q2 [8 G) G
数学中有一种叫“启发式”的论证方法,建立在估计和概率的手段上。比如说底下的论证方法就是这个类型的: ) ~* e9 E d; D 9 U0 ~5 t8 \' H# ~0 O“每个数字要么是奇数要么是偶数,如果随便取一个自然数,碰到奇数和偶数的可能性是一样的。如果我们把一次航班中这一系列数值看作是随机的话,那么使用奇变换和偶变换的可能性也是一样的,所以平均在每两次变换中我们有一次是n→3n+1,有一次是n→n/2。所以平均起来,每次飞行高度的变化就是乘以3/2,于是……就会越飞越高。” - H' [$ q4 R7 _# o, |' d) z+ D" _" ^% L3 u/ T# G9 H7 `0 a9 u
这样的启发式论证就推翻了原来的猜想!但是这个论证显然比较幼稚,因为它没有考虑到,每一次奇变换后随即而来的一定是一次偶变换,因为如果n是奇数的话,3n+1一定是偶数;而每一次偶变换后随即而来的却不一定是一次奇变换。J. Lagarias改进了这个启发式论证。他指出,如果我们把奇变换后再作偶变换考虑在一起,那么这样得到的结果可以看作是真的“很随机”。于是有1/2的可能性它是奇数,有1/4的可能性是一个奇数的2倍,有1/8的可能性是一个奇数的4倍,等等。于是飞行高度的变化就是以下变换的“平均效应”;8 Q0 G% d! L/ d( N9 e
# ^9 f+ F& u! Y; Y3 [7 ]6 h: `! i6 t
——n乘以3/2,这有1/2的可能(奇变换后再作偶变换的结果为奇数); " Z% g2 V7 J6 A, F7 n9 K——n乘以3/4,这有1/4的可能(奇变换后再作两次偶变换);: X# s0 C8 G7 y) H0 z& o7 ]1 W
——n乘以3/8,这有1/8的可能(奇变换后再作三次偶变换);5 c5 v7 m" B# P: ~6 T e- F. G
…………7 j1 Z- k3 z3 a* E
1 P. \# t) _1 q0 t z3 Z4 M: ~
于是平均来讲,每次变换后高度的变化就是 \4 d1 W. t5 I8 ]7 mc=(3/2)1/2(3/4)1/4(3/8)1/8(3/16)1/16……=3/4 + x% g' V: L7 v所以高度在总体上来说应该是越来越低,每次大约低25%,最终降到一个循环上(不过这个论证没有排除有除了4→2→1以外的其他循环)。这个论证可以使我们使用论证中的模型来计算出,从一个自然数开始,平均要多少步的这样的飞行(就是保持高度航程中奇变换的次数),可以使飞行高度降到起始点以下。理论上的数值是3.49265……。如果我们对3到2000000000(二十亿)之间的航班的保持高度航程中奇变换的次数取平均值,我们得到3.4926……。这两个结果惊人的一致 9 \+ X1 y2 T3 r( G性使我们相信上面的启发性模型是正确的。如果它是正确的,那么就意味着没有保持高度航程无限的航班,于是3x+1猜想就是正确的,至少可以得出没有飞得越来越高的航班的结论。 - J+ R# a% w q" E( K0 U3 n* P) W! S4 g. C/ r2 u! @( m! ^
可是一个启发性论证,就算再有实验证据来表明它是对的,也只不过是个论证,只能使我们对猜想的正确性更充满信心。它不能代替真正的数学证明。比如说,数学家猜想在π的十进位小数表示当中,出现0到9各个数字的可能性是一样的,对π的数值计算也强烈支持这个猜想,可是如果没有数学证明,它还是得被叫做一个猜想,而不是定理。. k3 N N# @" z. F/ ^
0 n0 W# U5 H: J Y- G) o: O
用上面这个启发式的概率模型,我们还可以预言,对于第n次航班,它的最大飞行高度不会超过Kn2(对于某个常数K)。数值计算表明对于K=8,这个公式是正确的(同样地,这可以让我们提出猜想,而不是证 ' A: v$ m& Z) r4 f j明定理)。+ O0 @# i: ~5 a3 Y8 x4 `( h- R' `
六、会不会永远证不出来? 2 x$ p! I& i) z9 _, h. r
自从哥德尔发表了他的著名的不完备性定理以来,每次碰到一个十分困难的问题时,数学家们就免不了疑神疑鬼——这会不会证不出来?: q5 _/ @( ?% P4 U8 d# j
; c2 v* m% u5 ~哥德尔的不完备性定理说,在包含皮亚诺的自然数公理的数学公理系统中,总有不可证明的命题存在。公理系统的这种性质叫不完备性。比如说,如果我们只取欧氏几何的前四条公理,那么平行公理是不能用这前四条公理证明出来的,也就是说只有前四条公理的平面几何是不完备的(这个例子不是很严格,因为欧几里德的公理系统在现代观点下是不严密的,但是我举这个例子只是为了说明不完备性这个概念,所以关系不大)。 - S, a% T. {+ A: ^1 a) x t5 e' F1 `7 V! k9 H
所以说,如果我们只用皮亚诺的自然数公理,甚至再加上现代的集合论公理系统,也有可能不能证明3x+1问题。甚至即使3x+1猜想其实是错误的,我们也有可能不能证明这一点。比如说,我们可能发现一个航班,我们对它进行计算,发现它飞得越来越高,但是无论如何不能证明它永远也不会回到1上来。- C @" l; s9 u& M$ S
. W& d# O. A& L6 t- t6 H/ f
当然无论什么数论问题都有可能搞得数学家们这样疑神疑鬼,虽然其实是他们还没有发现证明。不过有一些蛛丝马迹表明我们有必要稍微严肃点看待此问题,因为3x+1问题离不可证明的问题并不太远。3 a, o$ M: P4 F; {% w7 @6 s1 n9 z
$ ?; O0 \5 H; H" [8 u8 yJ. Conway(喜欢数学游戏的朋友可能会记起这个名字来,著名的生命游戏就是他发明的)在1972年考虑了3x+1问题的推广形式。在3x+1问题里,我们把数字除以2,然后得到了2种可能的余数(0或者1),按照余数我们使用2个公式(除以2或者乘3加1)。Conway考虑了除以一个固定的p,按照余数的不同(这时就有p种不同的余数)分别使用p个公式的情况。然后他提出了一个类似“在1着陆”的猜想。他在论文中证明了,这个猜想在集合论公理系统中是不可证的。, _5 A8 M& G8 C' T
+ y8 l' B! S4 A( O, s% H5 }事实上,在任何一个包含了皮亚诺的自然数公理的数学公理系统中,Conway的方法都可以定义一个类似于3x+1问题的不可证命题。当然这不是说有一个在所有公理系统中都不可证的命题。“不可证”总是相对于某公理系统而言的。当然,Conway的方法并没有说明3x+1问题本身是不可证的,也没有说它一定是很困难的(事实上有些3x+1问题的变种是很容易解决的),但是这毕竟说明,有些很象3x+1问题的命题是不可证的,这把事情搞得很可疑。 6 H$ f) I7 `7 e2 s7 c : O. k, p! \( O# _1993年,法国里尔(Lille)的基础信息实验室使用了Conway的方法来演示一套基于逻辑规则的编程形式的威力。同许多数学中的例子一样,先头看上去最没用的课题,会有很具体的用处。 , g) s" X/ P3 E1 M! a' q! ?七、各种变种 " M4 e# K4 B( }. ]+ \# y
数学家总喜欢把问题推广,使它更抽象化和一般化,因为这样可以把一种在具体某个问题上使用的方法的威力应用到一般的情况上去,从而得到很有可能是出乎意料的结论。 ^( g' J' W* D6 Y' Q. t1 Y2 Q9 o' L
数学家们首先考虑,如果把3x+1问题的规则运用到负整数上去,会产生什么现象。他们发现了三个不同的循环: # K: _( u& N$ o8 E: f1)-1→-2' n% `/ n3 \2 n- X
2)-5→-14→-7→-20→-10 8 D5 U D# h1 R; O' ^3)-17→-50→-25→-74→-37→-110→-55→-164→-82→-41→-122$ G2 J4 b/ @% A4 |
→-61→-182→-91→-272→-136→-68→-34 % c1 k: R' X B, i他们猜想,这就是所有的循环,而所有的负整数都会掉进其中一个里。 ! X, P) P# j& ]# r9 W. R' q Z, w. i
他们还提出了5x+1问题,也就是在奇数的情况下用5x+1来取代3x+1。 + A9 k5 I* ^$ d2 A: H这下又有好几个循环: ' R; p1 B9 Q9 Q% X3 Q! b8 C1)6→3→16→8→4→2→1 : U1 s; H% w z) O2)13→66→33→166→83→416→208→104→52→26 3 C, \6 ]8 U- f3)17→86→43→216→108→54→27→136→68→34 ( M* Z/ T* {" Q, @但是5x+1问题中的第7次航班好象老在那里飞啊飞,怎么也跑不到一个循环里去,但是谁都不能证明的确如此。 9 n% v" k6 X& C! z 4 p n" w9 \1 V上面Lagarias的那个启发式论证使得数学家猜想,如果q是大于3的奇数的话,对于qx+1问题,总存在至少一个航程无穷的航班,这看起来很象是一个“反3x+1问题”。- O2 P4 j# z) g. ]5 P* s$ o1 J; A+ X