再帰的バイナリ記述
最近、シーケンスA049064に bファイルを拡張および追加することで、OEISに初めて貢献しました。シーケンスはで始まり0、次の値は最後のアイテムの「バイナリ説明」の提供から派生します。
たとえば、最初の要素10に1つあったため、2番目の用語はになり0ます。第三項は次のようになり11101があったので、1一つ0。4番目はになります11110。なぜなら3つ(11バイナリで!) 1と1つだから0です。以下は、このプロセスを明確にするための第5項の内訳です。
> 11110
> 1111 0 (split into groups of each number)
> 4*1 1*0 (get count of each number in each group)
> 100*1 1*0 (convert counts to binary)
> 100110 (join each group back together)
そして、6期から7期に移行する例を次に示します。
> 1110010110
> 111 00 1 0 11 0
> 3*1 2*0 1*1 1*0 2*1 1*0
> 11*1 10*0 1*1 1*0 10*1 1*0
> 111100111010110
項を計算するために作成した参照プログラムφIを確認できます。
あなたの仕事
標準入力または関数の引数を介して数値を取り込み、改行で区切られた用語から用語へのシーケンスを出力するプログラムまたは関数を作成する必要があります。小さい数字をご覧になりたい場合は、OEISページからbファイルを参照してください。ただし、プログラム/関数はをサポートする必要があります(つまり、31期まで)。これは、140,000桁を超えるδのように、小さな偉業ではありません。31番目の用語がどうあるべきかを知りたい場合は、Pastebinに配置しました。n1st(n+1)th0 <= n <= 30A049064(30)
I / Oの例
func(10)
0
10
1110
11110
100110
1110010110
111100111010110
100110011110111010110
1110010110010011011110111010110
1111001110101100111001011010011011110111010110
1001100111101110101100111100111010110111001011010011011110111010110
func(0)
0
func(3)
0
10
1110
11110
ルールは1つだけです。標準的な抜け穴はありません!
これはcode-golfであるため、最小のバイト数が優先されます。
φ-Gistはここにあり、ideoneのデモはここにあります。
δ-念のために、100番目の用語の長さでの私の見積もりでは、約3.28x10 250文字の長さであるため、計算するのは非常に多くなります。
[0]\n[1, 0]\n[1, 1, 1, 0]\n...