Descrição binária recursiva
Recentemente, fiz minha primeira contribuição ao OEIS estendendo e adicionando um arquivo b à sequência A049064 . A sequência começa com 0e, em seguida, os próximos valores são derivados de fornecer uma "descrição binária" do último item.
Por exemplo, o segundo termo seria 10, porque havia um 0no primeiro elemento. O terceiro termo seria 1110, porque havia um 1e um 0. O quarto seria 11110. porque existem três ( 11em binário!) se 1 um 0. Abaixo está um detalhamento do quinto mandato para tornar esse processo claro:
> 11110
> 1111 0 (split into groups of each number)
> 4*1 1*0 (get count of each number in each group)
> 100*1 1*0 (convert counts to binary)
> 100110 (join each group back together)
E aqui está um exemplo para ir do 6º ao 7º termo:
> 1110010110
> 111 00 1 0 11 0
> 3*1 2*0 1*1 1*0 2*1 1*0
> 11*1 10*0 1*1 1*0 10*1 1*0
> 111100111010110
Você pode conferir um programa de referência φ eu fiz para calcular os termos.
Seu emprego
Você precisa criar um programa ou função que receba um número nvia argumentos de entrada ou função padrão e imprima a sequência do 1sttermo para o (n+1)thtermo, separada por uma nova linha. Se você quiser ver os números mais baixos, consulte o arquivo b na página OEIS. No entanto, seu programa / função deve suportar 0 <= n <= 30, ou seja, até o 31º termo. Isso não é pouca coisa, pois A049064(30)tem mais de 140.000 dígitos δ . Se você gostaria de ver qual deve ser o 31º termo, eu o coloquei em Pastebin .
Exemplo de E / S
func(10)
0
10
1110
11110
100110
1110010110
111100111010110
100110011110111010110
1110010110010011011110111010110
1111001110101100111001011010011011110111010110
1001100111101110101100111100111010110111001011010011011110111010110
func(0)
0
func(3)
0
10
1110
11110
Há apenas uma regra: sem brechas padrão!
Isso é código-golfe , então a menor contagem de bytes vence.
φ - A essência pode ser encontrada aqui , e uma demonstração de ideone está aqui .
δ - Para o caso de você estar se perguntando, minhas estimativas, no comprimento do 100º termo, o colocam em aproximadamente 3,28 x 250 caracteres, o que seria bastante para qualquer um calcular.
[0]\n[1, 0]\n[1, 1, 1, 0]\n...