Description binaire récursive
Récemment, j'ai apporté ma toute première contribution à OEIS en étendant et en ajoutant un fichier b à la séquence A049064 . La séquence commence par0 , puis les valeurs suivantes sont dérivées de la fourniture d'une "description binaire" du dernier élément.
Par exemple, le deuxième terme serait 10, car il y en avait un 0dans le premier élément. Le troisième terme serait 1110, car il y en avait un 1et un 0. Le quatrième serait 11110. car il y a trois ( 11en binaire!) 1 s et un 0. Voici une ventilation du cinquième mandat pour clarifier ce processus:
> 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)
Et voici un exemple pour passer du 6e au 7e trimestre:
> 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
Vous pouvez consulter un programme de référence φ j'ai fait pour calculer les termes.
Votre travail
Vous devez créer un programme ou une fonction qui prend un nombre nvia des arguments d'entrée ou de fonction standard , et imprime la séquence du 1stterme au (n+1)thterme, séparée par une nouvelle ligne. Si vous souhaitez consulter les chiffres inférieurs, vous pouvez vous référer au fichier b de la page OEIS. Cependant, votre programme / fonction devrait prendre en charge 0 <= n <= 30, c'est-à-dire jusqu'au 31ème trimestre. Ce n'est pas un mince exploit, car il A049064(30)comporte plus de 140 000 chiffres δ . Si vous souhaitez voir quel devrait être le 31ème mandat, je l'ai mis sur Pastebin .
Exemple d'E / S
func(10)
0
10
1110
11110
100110
1110010110
111100111010110
100110011110111010110
1110010110010011011110111010110
1111001110101100111001011010011011110111010110
1001100111101110101100111100111010110111001011010011011110111010110
func(0)
0
func(3)
0
10
1110
11110
Il n'y a qu'une seule règle: pas de failles standard!
C'est le code-golf , donc le nombre d'octets le plus bas l'emporte.
φ - Gist peut être trouvé ici , et une démo d'idéone est ici .
δ - Juste au cas où vous vous poseriez la question, mes estimations de la longueur du 100e terme le mettaient à environ 3,28x10 250 caractères, ce qui serait beaucoup pour tout le monde à calculer.
[0]\n[1, 0]\n[1, 1, 1, 0]\n...