Нещодавно я відправив на питання про Diffy іграх, залишилися без відповіді. Це добре, питання справді важке, але я хотів би зробити простіше питання про ігри Diffy, щоб ми могли отримати м'яч кочення.
Як працює Діффі
Скопійовано з Find Diffy Games
Гра 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
Більшість ігор закінчуються рядком з усіх нулів, що вважається втраченим станом, але рідкісна кількість ігор застряє у великих петлях.
Завдання
З огляду на початковий стан гри Diffy, визначте, чи гра в підсумку досягне стану всіх нулів. Ви повинні вивести значення Truthy або Falsy для кожного з двох станів. Що відповідає, що не має значення.
Мета - мінімізувати кількість байтів у вашому джерелі.
1 1 0
є періодичним, таким 42 42 41
є і такий стан.
n
непарна, гра не перейде до нуля, якщо всі числа не рівні. Якщо довжина - потужність 2, вона завжди йде до нуля.
n
елементами та максимумом m
займає не більше n * bit_length(m)
кроків. Отже, n*m
також є верхньою межею. Більш сильна верхня межа - t(n) * bit_length(m)
де t(n)
найбільша потужність 2, що є фактором n
.