前書き
Gijswijtのシーケンス(A090822)は有名で、本当に遅いです。説明する:
- 最初の3つは9番目の用語に表示されます(申し分ありません)。
- 最初の4つは220期目に表示されます(かなり先ですが、実現可能です)。
- 最初の5つは(ほぼ)10 ^(10 ^ 23)番目の項に表示されます(noのみ)。
- 最初の6がどこにあるのかさえ、誰も本当に知りません...それがどこにあるのか疑われています...
2 ^(2 ^(3 ^(4 ^ 5)))番目の項。
2桁の数字を扱う必要はないと想定できます。
シーケンスは次のように生成されます。
- 最初の項は1です。
- その後の各用語は、それより前の反復「ブロック」の量です(複数の反復「ブロック」がある場合、反復ブロックの最大量が使用されます)。
明確にするために、ここに最初のいくつかの用語があります。
1 -> 1, 1
(1つの繰り返しブロック(1
)。したがって、記録される数字は1
)
1, 1 -> 1, 1, 2
(2つの繰り返しブロック(1
)。したがって、記録される数字は2
)
1, 1, 2 -> 1, 1, 2, 1
(1つの繰り返しブロック(2
または1, 1, 2
)。したがって、記録される数字は1
)
1, 1, 2, 1 -> 1, 1, 2, 1, 1
(あなたはアイデアを得る)
1, 1, 2, 1, 1 -> 1, 1, 2, 1, 1, 2
1, 1, 2, 1, 1, 2 -> 1, 1, 2, 1, 1, 2, 2
(2つの繰り返しブロック(1, 1, 2
)。したがって、記録される数字は2
)
仕事
あなたのタスクは、質問で述べたように、Gijswijtシーケンスのn桁を生成することです。
説明書
- 入力は整数になり
n
ます。 - コードは、任意の形式(リスト、複数の出力など)で数字を出力できます。
これはコードゴルフであるため、バイト単位の最短コードが優先されます。
._
Pythの関数やその他の便利な関数はいつも忘れています。