Disons qu'une sous-chaîne est une section continue d'une chaîne d'origine. Par exemple, catest 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, concatenateest une sous-chaîne concatenatemais 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, 1qui est également une sous-chaîne de 10, 11n'est pas dans la séquence. 100contient cependant la sous-chaîne appropriée 00qui n'est pas une sous-chaîne de 10sorte 100est notre prochain terme. Ensuite, 101qui contient la sous-chaîne appropriée unique en l' 01ajoutant à la séquence, puis 110contient la sous-chaîne appropriée 11qui est nouvelle en l'ajoutant à la séquence.
Maintenant nous avons
10, 100, 101, 110
111est à côté, mais il ne contient que les sous-chaînes 1et 11n'en fait pas un terme. 1000contient cependant l' 000ajouter à 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é).