C语言中的Collatz猜想
更高类别: 【C语言】【C语言目录】(https://jb243.github.io/pages/802)
a. GitHub
Collatz 猜想以 Lothar Collatz 的名字命名,他于 1937 年首次提出该猜想,也称为 3n+1 问题或冰雹序列问题。 Collatz 猜想指出,对于任何自然数,以下算法将始终终止:
-
获取输入n。
-
如果n为1,则停止。
-
如果 n 是奇数,则计算 3n + 1。
-
如果n是偶数,则将其除以2。
-
重复步骤 2-4。
如果我们以 n = 22 为例,算法将产生以下值序列:
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
虽然该算法会终止我们通常处理的范围(最多 20 × 258)内的大多数数字,但尚未证明它会终止所有可能的输入。有人质疑这是否是一个无法解决的问题。以下算法包含一种在自然数 a 和 b 中查找循环长度最长的数(最多大约 10,000,000)的方法。该算法的优化留给个人考虑。此外,通过应用C2算法,您可以输出特定数字的周期。
受保护_0
输入:2016.03.01 11:34