Le mot de Fibonacci infini est une séquence infinie spécifique de chiffres binaires, qui sont calculés par concaténation répétée de mots binaires finis.
On définit qu'une séquence de mots de type Fibonacci (ou séquence FTW ) est une quelconque séquence ⟨W n ⟩ qui est formé comme suit.
Commencez avec deux tableaux arbitraires de chiffres binaires. Appelons ces tableaux W -1 et W 0 .
Pour chaque n> 0 , soit W n ≔ W n-1 ∥ W n-2 , où ∥ désigne la concaténation.
Une conséquence de la définition récursive est que W n est toujours un préfixe de W n + 1 et, par conséquent, de tout W k tel que k> n . Dans un sens, cela signifie que la séquence ⟨W n ⟩ converge vers un mot infini.
Formellement, soit W ∞ le seul tableau infini tel que W n soit un préfixe de W ∞ pour tout n ≥ 0 .
Nous appellerons tout mot infini formé par le processus ci-dessus un FTW infini .
Tâche
Écrivez un programme ou une fonction qui accepte deux mots binaires W -1 et W 0 en entrée et imprime W ∞ , en respectant les règles supplémentaires suivantes:
Vous pouvez accepter les mots dans n'importe quel ordre; comme deux tableaux, un tableau de tableaux, deux chaînes, un tableau de chaînes ou une seule chaîne avec un délimiteur de votre choix.
Vous pouvez imprimer les chiffres du mot infini sans délimiteur ou avec un délimiteur cohérent entre chaque paire de chiffres adjacents.
À toutes fins utiles, supposez que votre code ne manquera jamais de mémoire et que ses types de données ne débordent pas.
En particulier, cela signifie que toute sortie vers STDOUT ou STDERR résultant d'un plantage sera ignorée.
Si j'exécute votre code sur ma machine (Intel i7-3770, 16 Go de RAM, Fedora 21) pendant une minute et que je dirige sa sortie vers
wc -c
, il doit imprimer au moins un million de chiffres de W ∞ pour (W -1 , W 0 ) = (1, 0) .Les règles de code-golf standard s'appliquent.
Exemple
Soit W -1 = 1 et W 0 = 0 .
Alors W 1 = 01 , W 2 = 010 , W 3 = 01001 , W 4 = 01001010 … et W ∞ = 010010100100101001010… .
C'est le mot infini de Fibonacci.
Cas de test
Tous les cas de test contiennent les 1 000 premiers chiffres du FTW infini.
Input: 1 0
Output: 0100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010100100101001001
Input: 0 01
Output: 0100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010100100101001001
Input: 11 000
Output: 0001100000011000110000001100000011000110000001100011000000110000001100011000000110000001100011000000110001100000011000000110001100000011000110000001100000011000110000001100000011000110000001100011000000110000001100011000000110000001100011000000110001100000011000000110001100000011000110000001100000011000110000001100000011000110000001100011000000110000001100011000000110001100000011000000110001100000011000000110001100000011000110000001100000011000110000001100000011000110000001100011000000110000001100011000000110001100000011000000110001100000011000000110001100000011000110000001100000011000110000001100000011000110000001100011000000110000001100011000000110001100000011000000110001100000011000000110001100000011000110000001100000011000110000001100011000000110000001100011000000110000001100011000000110001100000011000000110001100000011000000110001100000011000110000001100000011000110000001100011000000110000001100011000000110000001100011000000110001100000011000000110001100000011000110000001100000011
Input: 10 010
Output: 0101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010100100101001001010
Input: 101 110
Output: 1101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101101011101011101101011101011101101011101101011101011101101011101101011101011101101011101011101101011101