当前位置:首页 > 博客 > 笔记 > 正文内容

编程验证克拉兹猜想

RWYQ阿伟2026-06-07笔记20

        从短视频看到一个数学难题。

        克拉兹猜想 Collatz conjecture

        又称奇偶归一猜想、冰雹猜想或 3n+1 猜想,是数学中一个著名但尚未解决的难题。

        运算规则:

        对于任何一个正整数 n,执行以下两种简单操作:

        - 如果 n 是偶数,则将其除以 2(即 n/2)。

        - 如果 n 是奇数,则将其乘 3 再加 1(即 3n+1)。

        猜想内容:

        不断重复上述步骤,得到的数字会反覆变化。该猜想断言:无论初始数字是多少,最终都必然能回到 1。

        编程实现:

#include <iostream>

using std::cin;
using std::cout;
using std::endl;

int main()
{
	// 输入一个正整数
	long long n;	
	// 计数器
	long long c = 0;

	cin >> n;	
	while ( n != 1)
	{
		if (n % 2 == 0)
		{
			n = n / 2;		
		}
		else
		{
			n = n * 3 + 1;		
		}
		c++;
		cout << c << ":" << "n = " << n << endl;	
	}
	return 0;
}

        实现很简单,IF判断奇数偶数,外层嵌套循环来判断是否到1。

        试了很多数字确实都回到1。

        27是很奇葩的数字,经过运算后,要经历111次运算才会回到1,期间第77次运算数值会上身到9232

        运算中的数字毫无规律。

        某些数字太大有可能造成溢出。


扫描二维码推送至手机访问。

版权声明:本文由阿伟的笔记本发布,如需转载请注明出处。

本文链接:https://www.awnotebook.com/post/1466.html

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。