Digamos que uma substring seja qualquer seção contínua de uma string original. Por exemplo, cat
é uma substring de concatenate
. Diremos que uma substring adequada é uma substring que não é igual à string original. Por exemplo, concatenate
é uma substring, concatenate
mas não uma substring adequada. (cadeias de caracteres únicos não possuem substrings apropriadas)
Agora definiremos uma sequência usando esses termos. O n º termo nesta seqüência será o menor número tal que há uma substring adequada de sua representação binária que não é uma substring de qualquer termo anteriormente na seqüência. O primeiro termo é 10
.
Como exercício, vamos gerar os 5 primeiros termos. Vou trabalhar em binário para facilitar as coisas.
O primeiro termo é 10
. Como 11
o próximo número menor, possui apenas uma substring adequada, 1
que também é uma substring 10
, 11
não está na sequência. 100
no entanto, contém a substring adequada, 00
que não é uma substring, 10
portanto 100
é o próximo termo. A seguir, é 101
que contém a substring apropriada exclusiva, 01
adicionando-a à sequência e, em seguida, 110
contém a substring apropriada, 11
que é nova, adicionando-a à sequência.
Agora temos
10, 100, 101, 110
111
é o próximo, mas contém apenas as substrings 1
e 11
não é um termo. 1000
no entanto, contém 000
adicioná-lo à sequência.
Aqui estão os primeiros dois termos em decimal
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
Tarefa
Ou
Tome n como entrada e gerar o n ésimo termo nesta sequência (0 ou 1 indexada)
Termos de saída contínuos da sequência
Isto é , as respostas do código-golfe são pontuadas em bytes, com menos bytes sendo melhores.
n
)?
a(36)
é 47 (1 indexado).