La palabra infinita de Fibonacci es una secuencia específica e infinita de dígitos binarios, que se calculan mediante la concatenación repetida de palabras binarias finitas.
Definamos que una secuencia de palabras de tipo Fibonacci (o FTW secuencia ) es cualquier secuencia de ⟨W n ⟩ que se forma como sigue.
Comience con dos matrices arbitrarias de dígitos binarios. Llamemos a estas matrices W -1 y W 0 .
Para cada n> 0 , deje W n ≔ W n-1 ∥ W n-2 , donde ∥ denota concatenación.
Una consecuencia de la definición recursiva es que W n es siempre un prefijo de W n + 1 y, por lo tanto, de todo W k tal que k> n . En un sentido, esto significa que la secuencia de ⟨W n ⟩ converge a una palabra infinito.
Formalmente, dejemos que W ∞ sea la única matriz infinita tal que W n sea un prefijo de W ∞ para todos n ≥ 0 .
Llamaremos a cualquier palabra infinita formada por el proceso anterior un FTW infinito .
Tarea
Escriba un programa o función que acepte dos palabras binarias W -1 y W 0 como entrada e imprima W ∞ , respetando las siguientes reglas adicionales:
Puede aceptar las palabras en cualquier orden; como dos matrices, una matriz de matrices, dos cadenas, una matriz de cadenas o una sola cadena con un delimitador de su elección.
Puede imprimir los dígitos de la palabra infinita sin un delimitador o con un delimitador consistente entre cada par de dígitos adyacentes.
Para todos los propósitos, suponga que su código nunca se quedará sin memoria y que sus tipos de datos no se desbordan.
En particular, esto significa que cualquier salida a STDOUT o STDERR que sea el resultado de un bloqueo se ignorará.
Si ejecuto su código en mi máquina (Intel i7-3770, 16 GiB RAM, Fedora 21) durante un minuto y canalizo su salida
wc -c
, debe imprimir al menos un millón de dígitos de W ∞ para (W -1 , W 0 ) = (1, 0) .Aplican reglas estándar de código de golf .
Ejemplo
Deje W -1 = 1 y W 0 = 0 .
Entonces W 1 = 01 , W 2 = 010 , W 3 = 01001 , W 4 = 01001010 … y W ∞ = 010010100100101001010… .
Esta es la palabra infinita de Fibonacci.
Casos de prueba
Todos los casos de prueba contienen los primeros 1,000 dígitos del FTW infinito.
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