题目描述
角谷猜想,是由日本数学家角谷静夫发现,是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。例如:3,计算过程为:
3*3+1=10;10/2=5;5*3+1=16;16/2=8;8/2=4;4/2=2;2/2=1。
请你设计一道灵活变通的程序,提升思维,任意给一个数n,把这个计算的结果及过程,用程序完美展现出来。
输入
输出
样例输入 Copy
<span style="background-color:#ffffff"><span style="color:#333333"><span style="color:#333333"><span style="background-color:#f5f5f5">3</span></span></span></span>
样例输出 Copy
<span style="background-color:#ffffff"><span style="color:#333333"><span style="color:#333333"><span style="background-color:#f5f5f5">3*3+1=10
10/2=5
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1</span></span></span></span>
程序
#include<iostream>
#include<fstream>
#include<algorithm>
using
namespace
std;
int
x,y;
int
main()
{
cin>>x;
y=x;
if
(x>1)
{
while
(x/2)
{
if
(x%2==0)
{
x/=2;
cout<<y<<
"/2="
<<x<<endl;
}
else
{
x*=3;
x+=1;
cout<<y<<
"*3+1="
<<x<< endl;
}
if
(x>1&&y>1)
{
y=x/2;
cout<<x<<
"/2="
<<y<<endl;
x/=2;
}
}
}
return
0;
}
角谷猜想
01
一个看似简单的问题。
3n+1猜想的具体表述很简单:
对任意正整数n做如下变换,如果n是偶数,就让它变成n/2(即减半);如果n是奇数,就让它变成3n+1。任何一个正整数n,按照这个规律进行了变换,最终都会变成1。
这里有几个简单的例子:
1)从12开始,我们得到变换序列12,6,3,10,5,16,8,4,2,1。
2)从19开始,我们得到变换序列19,58,29,88,44,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1。
3)从27日开始,情况变得复杂起来。按照上述规律,变换的整数值逐渐变大,最大值达到9232,但最终又变回1:
27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1
目前人们已经验证了小于1018的数的3n+1猜想。
但是验证和证明完全是两码事。
就是这样一个连小学生都能理解的猜想,它的证明难倒了这个时代所有的数学家!
全部!
02
数学还没有成熟到可以解决这样的问题。
现在无法考证究竟是谁提出了3n+1猜想。但有文献表明,早在20世纪30年代,德国数学家洛塔尔·柯拉茨(Lothar Collatz)就考虑过类似的问题,所以3n+1猜想常被称为柯拉茨猜想。由于3n+1猜想是由一个叫角谷的日本人传到中国的,所以在中国也叫角谷猜想。当然它还有很多其他的名字,但我觉得叫它3n+1猜想最合适。
洛萨·柯拉茨(1910-1990)
上世纪五六十年代,3n+1猜想传入美国后,疯狂吸引了大批数学专业的师生。据说这个猜想被引入耶鲁大学数学系时,整个系从本科生到资深教授,花了整整一个月的时间试图证明。同样的事情也发生在芝加哥大学。当时甚至有人声称3n+1猜想可能是摧毁美国数学研究的阴谋。
时至今日,关于3n+1猜想的研究并非毫无进展。代表性的工作是Krasikov和Lagarias 2003年在《算术学报》上发表的论文的结果:
在小于n的整数中,能满足这个猜想的整数个数至少为cn0.84其中c为固定常数。
但是,这些作品与3n+1猜想本身相比,实在是太弱了,根本无法撼动巨石猜想。
猜3n+1有多难?伟大的数学家p·鄂尔多斯曾经说过:“数学还没有成熟到可以解决这样的问题!”数学天才陶哲轩也认为这个猜想不太可能被目前的技术证明。
03
背后有大量的猜想和疑问。
3n+1猜想不是一个孤立的猜想,而是一大堆类似猜想中最简单最有代表性的例子。3n+1猜想本身也可以有很多扩展和概括。
注意,所有的整数都可以分为偶数(2n型)和奇数(2n+1型)。如果我们定义下面的正整数函数f,它在偶数和奇数上定义为:
f(2n)= n;f(2n+1)=3(2n+1)+1,
那么3n+1猜想就相当于说任意正整数在f的迭代下都会进入循环4→2→1。
当然,我们也可以用3n+m代替3n+1,(其中m是任何不能被3整除的奇数)。那么3n+m猜想是指任意整数在相关函数的迭代下都会进入有限个循环。
但是,如果我们用kn+1(k是大于3的奇数)代替3n+1,那么新函数的迭代质量就会发生根本的变化。我们一般猜测,当k大于3时,在新函数的迭代下,几乎所有的整数都会趋于无穷大。所有这些猜想的难度不亚于3n+1猜想本身。
最后引用另一个众所周知的整数迭代函数U。注意,所有的整数都可以分为偶数(2n型)、4n+1型和4n+3型的数,U函数对这三类数的定义是:
u(2n)= 3n;u(4n+1)= 3n+1;U(4n+3)=3n+2。
这个迭代函数是由Collatz首先考虑的。默里·克拉姆金在1963年提出了一个公开的问题:
整数n=8在函数u的迭代下是否趋于无穷大?
我们一般认为它应该趋于无穷大。例如,迭代序列的开始是:
8→12→18→27(27=4*6+3)→20→30→45(45=4×11+1)→34→51→38→57→。 .。。。。。。
但是这样一个特殊的猜想,到现在也无法证明。
太用力了,太用力了!
而这只是我们在这个大类问题中遇到的最简单也是最特殊的情况。关于这类问题最一般的表述和猜想,以及3n+1猜想的历史,可以参考专著《终极挑战:拉格利亚斯主编的3x+1问题》。这本专著的题目是《终极挑战》。
是的,3n+1猜想不愧是对人类智力的终极挑战!
04
与现有的数学分支有多大关系?
如果我们从1开始,应用逆变换规则,我们将得到著名的Collatz图。下面是19步逆变换得到的Collatz图。
围绕着Collatz图,从图论的角度有很多有趣的研究工作,但基本上没有一个对解决3n+1猜想有帮助。
另外,3n+1猜想中的修正迭代函数
f(2n)= n;f(2n+1)=(3(2n+1)+1)/2=3n+2
还可以推广到复数域上的2-adic整数环或迭代函数,这样就可以从遍历理论或复杂动力系统的角度来研究3n+1猜想。特别值得一提的是,复数域上的迭代函数f具有以下简单表达式:
保存迭代下的有界复数集。是不是很美?其实很多函数的Julia集都很好看!
值得一提的是,1972年数学家康威从数理逻辑的角度证明了3n+1猜想的一般推广是不可判定的。但是这对于解决3n+1猜想和其他具体的类似猜想没有帮助,就像丢番图方程所有著名的不能判断的结论对于解决具体的丢番图方程没有帮助一样。
从概率论和随机过程的角度理解3n+1猜想,或者将其与有限维代数联系起来,得到一些等价命题,还有一些工作。限于篇幅,就不一一介绍了。有兴趣的朋友可以参考这两本专著。
05
从遥远而神秘的未知世界传来的一缕光线
其实在数学的各个领域都有很多著名的谜题和猜想,比如黎曼猜想,关于多项式表示素数的一堆猜想,关于Artin L-函数的Artin猜想,关于代数数N元展开或连分式展开的Borel猜想,群论中的Bernside猜想等等。这些猜想的难度不可估量,甚至影响到整个分支的进度。但这些猜想所在的数学分支,如解析数论、代数数论、丢番图逼近、群论,如果不是很成熟,至少也是自成体系、欣欣向荣的。虽然这些猜想也非常非常困难,但最终的解决方案离不开相关数学分支已有的数学思维范式。
但3n+1猜想与上述数学猜想完全不同。我们不知道3n+1猜想代表了什么样的数学。我认为3n+1猜想的研究要想取得重大进展,必须彻底突破现有的数学思维范式。(很多人认为现代电力系统的不断发展可能最终会解决3n+1猜想,但我认为没那么简单)
如果把上面提到的那些猜想比作数学中未知海洋世界的冰山一角,那么3n+1猜想更像是从一个遥远而神秘的未知世界透射出来的一缕光线。这是一个全新的数学世界,远远超出目前所有职业数学家的数学想象。
在我的数学生涯中,每隔两三年,我都会留出一段时间(半个月到两三个月不等)来思考3n+1猜想。虽然总是失败,但我很享受思考3n+1猜想的美妙时光,那种美妙的感觉不亚于和一个美丽爱人的幽会