这是我教科书上的问题。的奇偶归一猜想(或“3N +1”的问题)的工作方式如下(按给出一些自然数 Ñ ):
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倍)来评论执行的最少/最大计算量。
任何帮助表示赞赏。
以@Kevin的评论为基础:现在,我们甚至不确定该过程是否对所有输入都终止。该序列很可能总是终止,并且很可能有一些输入永远不会终止。
如果序列对于某些输入永不终止,则最坏情况的输入将是序列永不停止的任何数字。这不一定与“任何非2的幂”相同,因为我们知道许多非2的幂都可以收敛于该序列(例如15)。
在序列对于所有输入总是终止的情况下,我们将不得不仔细研究为什么会这样,以便确定“最坏情况”的输入是什么。所有非2的幂都不可能是最坏情况的输入。很有可能会存在一个无限的自然数族,这些自然数将构成围绕其大小的数的最坏情况输入,类似于斐波那契数如何将最坏情况输入给Euclid算法。
当然,现在还没有人知道这一切-这就是解决开放式问题的妙处!
希望这可以帮助!