Kürzlich habe ich eine Frage zu Diffy-Spielen gepostet, die unbeantwortet geblieben ist. Das ist in Ordnung, die Frage ist wirklich schwierig, aber ich möchte eine einfachere Frage zu Diffy-Spielen stellen, damit wir den Ball ins Rollen bringen können.
Wie funktioniert Diffy?
Das Diffy-Spiel funktioniert wie folgt: Sie beginnen mit einer Liste nicht negativer Ganzzahlen, die wir in diesem Beispiel verwenden werden
3 4 5 8
Dann nehmen Sie die absolute Differenz zwischen benachbarten Zahlen
(8) 3 4 5 8
5 1 1 3
Dann wiederholst du. Sie wiederholen, bis Sie feststellen, dass Sie in eine Schleife eingetreten sind. Und dann fängt das Spiel in der Regel wieder von vorne an.
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
Die meisten Spiele enden in einer Folge von Nullen, was als Verlust betrachtet wird, aber einige wenige Spiele bleiben in größeren Schleifen stecken.
Aufgabe
Bestimmen Sie anhand des Anfangszustands eines Diffy-Spiels, ob das Spiel schließlich einen Zustand aller Nullen erreicht. Sie sollten für jeden der beiden Zustände einen Wert für Wahr oder Falsch ausgeben. Was was entspricht ist egal.
Ziel ist es, die Anzahl der Bytes in Ihrer Quelle zu minimieren.
1 1 0ist periodisch, so 42 42 41ist ein solcher Zustand.
nungerade ist, geht das Spiel nicht auf Null, es sei denn, alle Zahlen sind gleich. Wenn die Länge eine Zweierpotenz ist, geht sie immer auf Null.
nElementen und Maximum besteht aus mhöchstens n * bit_length(m)Schritten. Ist n*malso auch eine Obergrenze. Eine stärkere Obergrenze ist t(n) * bit_length(m), wo t(n)die größte Potenz von 2 ist, die ein Faktor von ist n.