최근에 나는 답이없는 Diffy games에 관한 질문을 게시 했습니다 . 괜찮습니다. 질문은 정말 어렵지만 Diffy 게임에 대해 더 쉬운 질문을해서 볼을 굴릴 수있게하고 싶습니다.
Diffy의 작동 방식
Diffy 게임 찾기 에서 복사
Diffy 게임은 다음과 같이 작동합니다 : 음이 아닌 정수 목록으로 시작합니다.이 예에서는
3 4 5 8
그런 다음 인접한 숫자 사이의 절대 차이를 취합니다.
(8) 3 4 5 8
5 1 1 3
그런 다음 반복합니다. 루프가 시작될 때까지 반복합니다. 그리고 일반적으로 게임은 처음부터 다시 시작됩니다.
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
대부분의 게임은 잃어버린 상태로 간주되는 모든 0의 문자열로 끝나지 만 드문 게임은 더 큰 루프에 빠집니다.
태스크
Diffy 게임의 시작 상태가 주어지면 게임이 결국 0의 상태에 도달하는지 여부를 결정하십시오. 두 상태 각각에 대해 Truthy 또는 Falsy 값을 출력해야합니다. 어느 것이 중요하지 않습니다.
목표는 소스의 바이트 수를 최소화하는 것입니다.
1 1 0
주기적이므로 42 42 41
그러한 상태도 있습니다.
n
가 홀수이면 모든 숫자가 같지 않으면 게임이 0이되지 않습니다. 길이가 2의 거듭 제곱이면 항상 0이됩니다.
n
요소가 있는 목록 과 최대 값 m
은 최대 n * bit_length(m)
단계입니다. 따라서 n*m
상한이기도합니다. 더 강한 상한은이며 t(n) * bit_length(m)
, 여기서 t(n)
2의 최대 거듭 제곱은의 인수입니다 n
.