La parola infinita di Fibonacci è una sequenza infinita specifica di cifre binarie, che sono calcolate dalla concatenazione ripetuta di parole binarie finite.
Definiamo che una sequenza di parole Fibonacci tipo (o FTW sequenza ) è qualsiasi sequenza ⟨W n ⟩ che si forma come segue.
Inizia con due matrici arbitrarie di cifre binarie. Chiamiamo questi array W -1 e W 0 .
Per ogni n> 0 , lascia W n ≔ W n-1 ∥ W n-2 , dove ∥ indica concatenazione.
Una conseguenza della definizione ricorsiva è che W n è sempre un prefisso di W n + 1 e, quindi, di tutto W k tale che k> n . In un certo senso, questi mezzi la sequenza ⟨W n ⟩ converge ad una parola infinita.
Formalmente, sia W ∞ l'unico array infinito tale che W n sia un prefisso di W ∞ per tutti n ≥ 0 .
Chiameremo qualsiasi parola infinita formata dal processo sopra un FTW infinito .
Compito
Scrivi un programma o una funzione che accetta due parole binarie W -1 e W 0 come input e stampa W ∞ , rispettando le seguenti regole aggiuntive:
Puoi accettare le parole in qualsiasi ordine; come due array, un array di array, due stringhe, un array di stringhe o una stringa singola con un delimitatore a scelta.
È possibile stampare le cifre della parola infinita o senza un delimitatore o con un delimitatore coerente tra ciascuna coppia di cifre adiacenti.
A tutti gli effetti, supponi che il tuo codice non esaurirà mai la memoria e che i suoi tipi di dati non traboccino.
In particolare, ciò significa che qualsiasi output su STDOUT o STDERR che è il risultato di un arresto anomalo verrà ignorato.
Se eseguo il codice sulla mia macchina (Intel i7-3770, 16 GiB RAM, Fedora 21) per un minuto e installo il suo output su
wc -c
, deve stampare almeno un milione di cifre di W ∞ per (W -1 , W 0 ) = (1, 0) .Si applicano le regole standard del code-golf .
Esempio
Sia W -1 = 1 e W 0 = 0 .
Quindi W 1 = 01 , W 2 = 010 , W 3 = 01001 , W 4 = 01001010 … e W ∞ = 010010100100101001010… .
Questa è la parola infinita di Fibonacci.
Casi test
Tutti i casi di test contengono le prime 1.000 cifre dell'infinito FTW.
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