Disons qu'une sous-chaîne est une section continue d'une chaîne d'origine. Par exemple, cat
est une sous-chaîne de concatenate
. Nous dirons qu'une sous-chaîne correcte est une sous-chaîne qui n'est pas égale à la chaîne d'origine. Par exemple, concatenate
est une sous-chaîne concatenate
mais pas une sous-chaîne appropriée. (les chaînes de caractères uniques n'ont pas de sous-chaînes appropriées)
Nous allons maintenant définir une séquence en utilisant ces termes. Le n ième terme de cette séquence sera le plus petit nombre de sorte qu'il existe une sous-chaîne appropriée de sa représentation binaire qui n'est pas une sous-chaîne d'un terme antérieur de la séquence. Le premier terme est 10
.
Comme un exercice permet de générer les 5 premiers termes. Je vais travailler en binaire pour faciliter les choses.
Le premier terme est 10
. Puisque 11
, le plus petit nombre suivant, n'a qu'une seule sous-chaîne appropriée, 1
qui est également une sous-chaîne de 10
, 11
n'est pas dans la séquence. 100
contient cependant la sous-chaîne appropriée 00
qui n'est pas une sous-chaîne de 10
sorte 100
est notre prochain terme. Ensuite, 101
qui contient la sous-chaîne appropriée unique en l' 01
ajoutant à la séquence, puis 110
contient la sous-chaîne appropriée 11
qui est nouvelle en l'ajoutant à la séquence.
Maintenant nous avons
10, 100, 101, 110
111
est à côté, mais il ne contient que les sous-chaînes 1
et 11
n'en fait pas un terme. 1000
contient cependant l' 000
ajouter à la séquence.
Voici les premiers termes du couple en décimal
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
Tâche
Soit
Prenez n en entrée et générez le n ème terme dans cette séquence (soit 0 soit 1 indexé)
Sortie en continu des termes de la séquence
Il s'agit du code-golf, les réponses sont notées en octets, moins les octets étant meilleurs.
n
)?
a(36)
est 47 (1 indexé).