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 41como esse estado.
nfor í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.
nelementos e o máximo de etapas mna maioria das n * bit_length(m)etapas. Então, n*mtambé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.