これは、I / O要件を最近の標準に合わせて調整するための、古い課題の再投稿です。これは、この人気のシーケンスに関するチャレンジに、より多くの言語が参加できるようにするために行われます。再投稿については、このメタ投稿をご覧ください。
Kolakoskiシーケンスは楽しい自己参照シーケンスであり、OEISシーケンスA000002であるという栄誉を持っています(A000001よりも理解と実装がはるかに簡単です)。シーケンスが始まる1のみから成り1秒と2秒と配列エレメント(N)の長さ説明n個のラン番目の1秒または2つの配列中のSです。これにより、シーケンスが一意に定義されます(その下の実行が視覚化されます)。
1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,2,1,1,2,...
= === === = = === = === === = === === = = === = = === === = === =
1, 2, 2, 1,1, 2, 1, 2, 2, 1, 2, 2, 1,1, 2, 1,1, 2, 2, 1, 2, 1,...
もちろん、あなたの仕事はこのシーケンスを実装することです。次の3つの形式のいずれかを選択できます。
- 入力を取るNと出力Nをシーケンスの用語番目Nのいずれかで開始から0または1。
- 入力取るN及び出力の用語までを含むNシーケンスの用語番目、nは開始のいずれかから0または1(すなわち、いずれかの印刷最初のn又は第n + 1つの観点から)。
- シーケンスから値を無期限に出力します。
2番目と3番目のケースでは、合理的で明確なリスト形式を選択できます。要素は定義上常に1桁であるため、要素間に区切り文字がなければ問題ありません。
3番目のケースでは、提出が関数である場合、それらをサポートする言語で無限リストまたはジェネレーターを返すこともできます。
プログラムまたは関数を記述し、入力を受け取り、出力を提供する標準的な方法を使用できます。これらの抜け穴はデフォルトでは禁止されていることに注意してください。
これはcode-golfであるため、バイト単位で測定された最短の有効な回答が勝ちます。