Recientemente publiqué una pregunta sobre los juegos de Diffy que no ha recibido respuesta. Está bien, la pregunta es realmente difícil, pero me gustaría hacer una pregunta más fácil sobre los juegos de Diffy para que podamos poner la pelota en marcha.
¿Cómo funciona Diffy?
Copiado de Find Diffy Games
El juego Diffy funciona de la siguiente manera: comienzas con una lista de enteros no negativos, en este ejemplo usaremos
3 4 5 8
Luego tomas la diferencia absoluta entre números adyacentes
(8) 3 4 5 8
5 1 1 3
Entonces repites. Repite hasta que se da cuenta de que ha entrado en un bucle. Y luego, en general, el juego comienza desde el principio nuevamente.
3 4 5 8
5 1 1 3
2 4 0 2
0 2 4 2
2 2 2 2
0 0 0 0
0 0 0 0
La mayoría de los juegos terminan en una cadena de todos los ceros, lo que se considera un estado perdido, pero algunos juegos raros se atascan en bucles más grandes.
Tarea
Dado el estado inicial de un juego Diffy, determine si el juego finalmente alcanza o no un estado de todos ceros. Debe generar un valor de Verdad o Falsía para cada uno de los dos estados. Lo que corresponde a lo que no importa.
El objetivo es minimizar el número de bytes en su fuente.
1 1 0
es periódico, también lo 42 42 41
es ese estado.
n
es impar, el juego no llega a cero a menos que todos los números sean iguales. Si la longitud es una potencia de 2, siempre va a cero.
n
elementos y máximo m
toma en la mayoría de los n * bit_length(m)
pasos. Entonces, n*m
también es un límite superior. Un límite superior más fuerte es t(n) * bit_length(m)
, donde t(n)
es la mayor potencia de 2 que es un factor de n
.