バイナリ平方対角線シーケンスは次のように構成されています。
- 正の自然数のシーケンスを取ります。
1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、...
各数値をバイナリに変換します:
1、10、11、100、101、110、111、1000、1001、1010、1011、1100、1101、1110、1111、10000、10001、...
それらを連結します。
11011100101110111100010001010101111001101111011111000010001 ...
で始まり、上記のシーケンスの要素で左から右、上から下に満たされる
n=1
辺の長さn
が増加する正方形を生成します。1
1 0 1 1
1 0 0 1 0 1 1 1 0
1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1
0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1
...
各正方形の対角線(左上から右下)を取得します。
1、11、100、1011、00111、...
10進数に変換(先行ゼロを無視):
1、3、4、11、7、...
仕事
次のいずれかの方法でシーケンスを出力するプログラムまたは関数を作成します。
- シーケンスを無限に返すか印刷します。
- inputを指定すると、シーケンスの
i
最初のi
要素を返すか出力します。 - inputを指定すると、シーケンスのth要素(0または1のインデックス付き)を
i
返すか出力しi
ます。
選択した出力形式を回答に明記してください。
これはcode-golfであり、各言語で最も短い答えが勝ちです。
テストケース
シーケンスの最初の50要素は次のとおりです。
1,3,4,11,7,29,56,141,343,853,321,3558,8176,3401,21845,17129,55518,134717,151988,998642,1478099,391518,7798320,8530050,21809025,61485963,66846232,54326455,221064493,256373253,547755170,4294967295,1875876391,2618012644,24710258456,6922045286,132952028155,217801183183,476428761596,51990767390,687373028085,1216614609441,7677215985062,15384530216172,22714614479340,15976997237789,0,256145539974868,532024704777005,601357273478135
3m
でn
?