这是我教科书中的一个问题。Collat z 猜想(或“3n + 1”问题)的工作原理如下(给定一些自然数n):
while n > 1 do
if n is even then
n = n / 2
else
n = 3n + 1
end if
end while
我浏览了几篇关于这个猜想的论文,但它们都超出了我的想象。我试图对算法的复杂性有一个基本的了解。是否可以评论执行操作数量的上限或下限(在最坏的情况下)?
我能推断出的唯一一件事是最佳情况输入必须是 n = 2^k 的形式(这将导致最少的操作)。由此,可以说最坏情况的输入是任何非 2 的幂吗?
我一直在努力尝试将粗略的上限或下限概念化。对于任何n,似乎有太多从奇数到偶数的切换(这导致增加 3 倍或减少 2 倍)来评论执行的最少/最多计算量。
任何帮助表示赞赏。