Katakanlah substring adalah bagian berkelanjutan dari string asli. Misalnya cat
adalah substring dari concatenate
. Kami akan mengatakan bahwa substring yang tepat adalah substring yang tidak sama dengan string asli. Misalnya concatenate
adalah substring concatenate
tetapi bukan substring yang tepat. (string karakter tunggal tidak memiliki substring yang tepat)
Kami sekarang akan menentukan urutan menggunakan istilah-istilah ini. The n th istilah dalam urutan ini akan menjadi nomor terkecil sehingga ada substring yang tepat dari representasi biner yang bukan merupakan substring dari setiap istilah sebelumnya dalam urutan. Istilah pertama adalah 10
.
Sebagai latihan mari kita menghasilkan 5 istilah pertama. Saya akan bekerja dalam biner untuk mempermudah.
Istilah pertama adalah 10
. Karena 11
, angka terkecil berikutnya, hanya memiliki satu substring yang tepat, 1
yang juga merupakan substring 10
, 11
tidak ada dalam urutan. 100
Namun memang mengandung substring 00
yang tepat yang bukan substring 10
sehingga 100
adalah istilah kita selanjutnya. Berikutnya adalah101
yang berisi substring unik yang tepat 01
menambahkannya ke urutan, lalu 110
berisi substring 11
yang tepat yang baru menambahkannya ke urutan.
Sekarang kita punya
10, 100, 101, 110
111
berikutnya, tetapi hanya berisi substring 1
dan 11
membuatnya bukan istilah. 1000
Namun berisi 000
menambahkannya ke urutan.
Berikut adalah istilah pasangan pertama dalam desimal
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
Tugas
Antara
Ambil n sebagai input dan hasilkan istilah ke- n dalam urutan ini (0 atau 1 diindeks)
Secara kontinu menampilkan persyaratan urutan
Ini adalah jawaban kode-golf diberi skor dalam byte dengan lebih sedikit byte menjadi lebih baik.
n
)?
a(36)
adalah 47 (1 diindeks).