今天我们讲解儿童编程C语言入门-3n+1问题
内容就一个部分:
3n+1问题
3n+1问题
猜想:对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半,经过若干次这样的变换以后,一定会使n变成1.
3n+1问题研究历史
在1930年代,德国汉堡大学的学生考拉兹,曾经研究过这个猜想。在1960年,日本人角谷静夫也研究过这个猜想。但这猜想到目前,仍没有任何进展。
强悍的27
英国剑桥大学教授John Conway找到了一个自然数27。虽然27是一个貌不惊人的自然数,但是如果按照上述方法进行运算,则它的上浮下沉异常剧烈:首先,27要经过77步骤的变换到达顶峰值9232,然后又经过34步骤到达谷底值1。全部的变换过程(称作“雹程”)需要111步,其顶峰值9232,达到了原有数字27的342倍多,如果以瀑布般的直线下落(2的N次方)来比较,则具有同样雹程的数字N要达到2的111次方。其对比何其惊人!
3n+1问题研究最新进展
目前已经有分布式计算在进行验证。到2009年1月18日,已验证正整数到 5 × 260 = 5,764,607,523,034,234,880,也仍未有找到例外的情况。但是这并不能够证明对于任何大小的数,这猜想都能成立。
int n,count=0;
scanf(“%d”,&n);
while(n>1)
{
if(n%2==1)n=n*3+1;
else n/=2;
count++;
}
编程练习
根据用户从键盘输入的整数,求这些数的平均数,保留两位小数。
领取专属 10元无门槛券
私享最新 技术干货