1. Definition and program

Definition

For any integer n, define the following operation;

n is even ⇒ n = n/2
n is odd ⇒ n = 3*n+1

For example,

n=3

3 ⇒ 10 ⇒ 5 ⇒ 16 ⇒ 8 ⇒ 4 ⇒ 2 ⇒ 1 ⇒ 4 ⇒ 2 ⇒ 1 ⇒ ......

n=7

7 ⇒ 22 ⇒ 11 ⇒ 34 ⇒ 17 ⇒ 52 ⇒ 26 ⇒ 13 ⇒ 40 ⇒ 20 ⇒ 10 ⇒ 5 ⇒
this is same to the case n=5

n=9

9 ⇒ 28 ⇒ 14 ⇒ 7 ⇒
this is same to the case n=7

It seems that any integer n converges to a loop 4 ⇒ 2 ⇒ 1 at the end.
This is called as Collatz's conjecuture, famous unsolved problem.

Program

According to the above observation, it seems quite natural that every n converges to 1.
But if we check the case n=27, this conjecture becomes ambiguous.

n=27

27 ⇒ 82 ⇒ 41 ⇒ 124 ⇒ 62 ⇒ 31 ⇒ 94 ⇒ 47 ⇒ 142 ⇒ 71 ⇒ 214 ⇒ 107 ⇒ ......

So, we need to check by using some program.
The algorithm is very easy (simply implementing the definition).

10   ' collatz
20   input N:print N;
30   if odd(N) then N=N*3+1 else N=N\2
40   print " ⇒ ";N;
50   if N=1 then print:goto 20 else goto 30

Execute and input 27 for n

27 ⇒ 82 ⇒ 41 ⇒ 124 ⇒ 62 ⇒ 31 ⇒ 94 ⇒ 47 ⇒ 142 ⇒ 71 ⇒ 214 ⇒ 107 ⇒ 322 ⇒ 161 ⇒ 484 ⇒ 242 ⇒ 121 ⇒ 364 ⇒ 182 ⇒ 91 ⇒ 274 ⇒ 137 ⇒ 412 ⇒ 206 ⇒ 103 ⇒ 310 ⇒ 155 ⇒ 466 ⇒ 233 ⇒ 700 ⇒ 350 ⇒ 175 ⇒ 526 ⇒ 263 ⇒ 790 ⇒ 395 ⇒ 1186 ⇒ 593 ⇒ 1780 ⇒ 890 ⇒ 445 ⇒ 1336 ⇒ 668 ⇒ 334 ⇒ 167 ⇒ 502 ⇒ 251 ⇒ 754 ⇒ 377 ⇒ 1132 ⇒ 566 ⇒ 283 ⇒ 850 ⇒ 425 ⇒ 1276 ⇒ 638 ⇒ 319 ⇒ 958 ⇒ 479 ⇒ 1438 ⇒ 719 ⇒ 2158 ⇒ 1079 ⇒ 3238 ⇒ 1619 ⇒ 4858 ⇒ 2429 ⇒ 7288 ⇒ 3644 ⇒ 1822 ⇒ 911 ⇒ 2734 ⇒ 1367 ⇒ 4102 ⇒ 2051 ⇒ 6154 ⇒ 3077 ⇒ 9232 ⇒ 4616 ⇒ 2308 ⇒ 1154 ⇒ 577 ⇒ 1732 ⇒ 866 ⇒ 433 ⇒ 1300 ⇒ 650 ⇒ 325 ⇒ 976 ⇒ 488 ⇒ 244 ⇒ 122 ⇒ 61 ⇒ 184 ⇒ 92 ⇒ 46 ⇒ 23 ⇒ 70 ⇒ 35 ⇒ 106 ⇒ 53 ⇒ 160 ⇒ 80 ⇒ 40 ⇒ 20 ⇒ 10 ⇒ 5 ⇒ 16 ⇒ 8 ⇒ 4 ⇒ 2 ⇒ 1

converges to 1 at 112-generation. Maximum value during iteration reached 9232.


previous index next

E-mail : kc2h-msm@asahi-net.or.jp
Hisanori Mishima