首页 > 解决方案 > 这个 STOP 问题最终会如何工作?

问题描述

所以嘿,

我有一个学校的任务,它基于以下代码:

while(n != 1)
    {
        System.out.print(n + ", ");
        if(n%2 == 0)
        {
            n = n/2;
        }
        else
        {
            n = here;
        }
    }

问题是,如果你改变这条线会发生什么

n = here;

到 3n+2、2n+1 和 n+1 到目前为止我学到的东西:对于 3n+2,如果你运行程序并且 n 将是 50,另一个时间是 200,在某个点之后它看起来会完全一样,虽然不会工作对于负数;对于 2n+1 根本不起作用 对于 n+1 将起作用

任何高质量的信息,它是如何工作的,我无法完全弄清楚?

标签: algorithm

解决方案


您感兴趣的是Collat​​z_conjecture和变体。假设它永远不会达到无穷大,但我们仍然没有证据。

此外,我强烈建议您观看这些关于它的小视频:Collat​​z_conjecturevariations


推荐阅读