最近、Diffyゲームに関する質問を投稿しましたが、回答がありませんでした。結構です、質問は本当に難しいですが、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ゲームの開始状態を考慮して、ゲームが最終的にすべてゼロの状態に到達するかどうかを判断します。2つの状態ごとに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
。