C语言编程实现冰雹猜想的算法,并测算各个自然数到达4-2-1谷底(即N等于4,2,1结束后)所经过的变换次数。

更多资料请点击:我的目录
1976年的一天,《华盛顿邮报》于头版头条刊登了一条数学新闻,文中叙述了这样一则故事:70年代中期,美国个所名牌大学校园内,人们都像发疯一般,日以继夜废寝忘食地玩弄一种数学游戏,这个游戏十分简单,任意写出一个(非零)自然数N,并且按照以下规律进行变换:
如果是个奇数,则下一步变成 3N+1
如果是个偶数,则下一步变成 N/2
一时间学生、教师、研究员、教授,甚至是一等一的数学大拿、天才都纷纷加入这个看似简单的数学游戏,人们取了各种各样的数字N去检验这个算法,最终都无一例外地坠入自然数序列4-2-1,于是就自然萌生出这样的猜想:对于任意非零自然数N,经上述变换最终都将落入4-2-1序列的宿命。这就是著名的角谷猜想,或称冰雹猜想。
冰雹猜想最大的魅力,在于其不可预知性,数字N的转化过程变幻莫测,有些平缓温和,有些剧烈沉浮,但却都无一例外地会坠入4-2-1的谷底,这好比是一个数学黑洞,将所有的自然数牢牢吸住。有人把冰雹路径比喻一个参天大树,下面的树根是连理枝4-2-1,而上面的枝枝叶叶则构成了一个奥妙的通路,把一切(非零)自然数统统都覆盖了,这个小学生都看得懂的问题,迄今为止却没有任何数学手段和超级计算机可以证明。
冰雹猜想跟蝴蝶效应恰好相悖,蝴蝶效应蕴含的原理是:初始值的极小误差,会造成结果的巨大不同,而冰雹猜想恰好相反:无论刚开始存在多大的误差,最后都会自行修复,直到坠入谷底。
题目要求:使用你所学习的C语言知识,编程实现冰雹猜想的算法,并测算各个自然数到达4-2-1谷底(即N等于4,2,1结束后)所经过的变换次数。

#include <stdio.h>

int main()
{
	int N, i = 0, j = 0;
	printf("请输入一个非0整数:");
	scanf("%d",&N);
	while( N != 0 && N !=1 )
	{
		if (N%2 == 0)
		{
			N = N / 2;
			i++;
			printf("%d--",N);
		}
		else if( N%2 == 1)
		{
			N = 3*N+1;
			i++;
			printf("%d--",N);
		}
	}
	
	printf("结束\n此次冰雹猜想的变换次数 == %d\n",i);
	return 0;
}

在这里插入图片描述

更多资料请点击:我的目录

发布了75 篇原创文章 · 获赞 35 · 访问量 5913

猜你喜欢

转载自blog.csdn.net/weixin_43793181/article/details/104173111