Recentemente, postei uma pergunta sobre os jogos Diffy, que ficou sem resposta. Tudo bem, a pergunta é realmente difícil, mas eu gostaria de fazer uma pergunta mais fácil sobre os jogos do Diffy para que possamos fazer a bola rolar.
Como Diffy funciona
Copiado de Find Diffy Games
O jogo Diffy funciona da seguinte maneira: Você começa com uma lista de números inteiros não negativos; neste exemplo, usaremos
3 4 5 8
Então você toma a diferença absoluta entre números adjacentes
(8) 3 4 5 8
5 1 1 3
Então você repete. Você repete até perceber que inseriu um loop. E então geralmente o jogo começa do começo novamente.
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
A maioria dos jogos termina com uma série de zeros, o que é considerado um estado de perda, mas alguns jogos raros ficam presos em loops maiores.
Tarefa
Dado o estado inicial de um jogo Diffy, determine se o jogo atinge ou não um estado com todos os zeros. Você deve gerar um valor Truthy ou Falsy para cada um dos dois estados. Qual corresponde ao que não importa.
O objetivo é minimizar o número de bytes em sua fonte.
1 1 0
é periódico, assim 42 42 41
como esse estado.
n
for ímpar, o jogo não será zero, a menos que todos os números sejam iguais. Se o comprimento for uma potência de 2, sempre será zero.
n
elementos e o máximo de etapas m
na maioria das n * bit_length(m)
etapas. Então, n*m
também é um limite superior. Um limite superior mais forte é t(n) * bit_length(m)
, onde t(n)
está a maior potência de 2 que é um fator de n
.