我的 "Collatz conjecture" 怎么了?

What is wrong with my "Collatz conjecture"?

所以,我只是想创建一个循环 运行 "3n+1" 公式,当我输入一个负数时,我陷入了一个无限循环,余数为 0 和 -1 .

这是正确的还是我的代码遗漏了什么?

这是我的代码:

    Scanner scan = new Scanner(System.in);
    number = 0;
    method = 0;
int counter= 0;

if(scan.hasNextInt()){
     number = scan.nextInt();
  int original = number;
 while(number!=1){
      method = number%2;
     if(method==0){
    number = number/2;
 }else number = number*3+1;
 counter +=1;
  System.out.println(number);
  System.out.println("the remainder was "+method);
 }


 System.out.println("The original number was "+original);
 System.out.println("it took " + counter+ " times to reach 1.");



}else System.out.println("please enter a number");

这个猜想只对自然数成立(即正整数1,2,3,...)。如果你想把它扩展到 0 和负数,你将不得不使用一些其他的公式。在 https://en.wikipedia.org/wiki/Collatz_conjecture 上查看 "Extensions to larger domains"。

形成了几个循环。进一步谷歌搜索将显示形成了 3-4 个(google 用于精确计数)循环。然后其余的负数也应该回到 $-1$ 或换句话说与正例“类似”。所以你陷入了第一个循环!哈哈

我认为应该考虑将其扩展到整数群,以便有希望立即应用群上同调技术而不是幺半群上同调技术(探索较少)。