今日は、Collatz関数fに関連するシーケンスaを見ていきます。
我々は、フォームのシーケンスを呼び出す...、Z、F(z)は、F(F(z)を)このCollatzシーケンス。
最初の数私たちのシーケンスは、(1)は、ある0。fを繰り返し適用すると、サイクル0→0→…
まだ見ていない最小の数は1で、a(2)= 1になります。fを繰り返し適用すると、サイクル1→4→2→1→…
これで、上のサイクルで数値2が見られたため、次に小さい数値はa(3)= 3で、サイクル3→10→5→16→8→4→2→1→4→2→1に分類されます→…
上記のすべてのサイクルで、すでに4と5を見てきたので、次の数はa(4)= 6です。
ここまでで、アイデアが得られるはずです。a(n)は、すべてのa(1)、…、a(n − 1)の Collatzシーケンスの一部ではない最小の数です。
正の整数nを指定するとa(n)を返すプログラムまたは関数を作成します。バイト単位の最短コードが優先されます。
テストケース:
1 -> 0
2 -> 1
3 -> 3
4 -> 6
5 -> 7
6 -> 9
7 -> 12
8 -> 15
9 -> 18
10 -> 19
50 -> 114
(これはOEISシーケンスA061641です。)
n
は0から始まりますか?
a(n+1) = a(n) odd: 3*a(n)+1, or a(n) even: a(n)/2
a
:0ベースではありませんあなたはここで、「0ベースの話」しているようだ、なぜ私は理解していないa(n) is the smallest number that was not part of any Collatz sequences for all a(0), …, a(n − 1).