部分文字列は、元の文字列の連続したセクションであるとしましょう。たとえばcat
、の部分文字列ですconcatenate
。適切な部分文字列は、元の文字列と等しくない部分文字列であると言います。たとえばconcatenate
、サブストリングはサブストリングですconcatenate
が、適切なサブストリングではありません。(単一の文字列には適切な部分文字列はありません)
これらの用語を使用してシーケンスを定義します。このシーケンスのn番目の用語は、そのバイナリ表現の適切なサブストリングがシーケンス内の以前の用語のサブストリングではないような最小数になります。最初の用語は10
です。
演習として、最初の5つの用語を生成します。私は物事を簡単にするためにバイナリで作業します。
最初の用語は10
です。ので、11
次の最小数は、唯一の適切なサブ有し、1
またのサブストリングである10
、11
配列ではありません。 100
しかし、適切なストリング含まない00
のストリングではありません10
ので100
、私たちの次の用語です。次は、シーケンスに追加101
する固有の適切なサブストリング01
を110
含み、次にシーケンスに11
追加する新しい適切なサブストリングを含みます。
今、私たちは持っています
10, 100, 101, 110
111
次のアップですが、それは唯一のサブストリングが含ま1
や11
用語を、それをしていないし。 1000
ただし000
、シーケンスへの追加が含まれます。
10進数の最初のカップルの用語を次に示します
2, 4, 5, 6, 8, 9, 10, 11, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 54, 56, 58
仕事
どちらか
取るN入力として及び生成N(0または1索引付けされた)を、この順序で番目の用語を
シーケンスの継続的な用語の出力
これは、コードとゴルフの回答がバイト単位で記録され、バイト数が少ないほど良いことです。
n
)を追加できますか?
a(36)
47(1インデックス付き)です。