Bestimmen Sie anhand einer Additionspyramide , ob sie gelöst werden kann. Eine Additionspyramide besteht aus Schichten , von denen jede eine Nummer kleiner als die darunter liegende hat. Die Schicht wird als symbolisiert . ist die Basisschicht und ist die Schicht auf . Die te Zahl von wird als . ist die Zahl ganz links von und ist die Zahl rechts von . Sie können sich vorstellen, das sich aufund in der Mitte, daher der Name "addition Pyramide ".
- , dh jede Zahl in der Pyramide ist eine positive ganze Zahl ungleich Null.
- , dh jede Zahl, die sich nicht auf der Basisschicht der Pyramide befindet, ist die Summe von die zwei Zahlen darunter.
- Wenn hat Zahlen, hat Zahlen daher ist die am weitesten rechts liegende Anzahl von . Einfacher ausgedrückt hat jede Ebene eine Zahl weniger als die darunter liegende Ebene.
Ein Additionspyramiden-Puzzle ist eine Additionspyramide, bei der einige Zahlen entfernt (durch Ersetzt ) wurden. Seine Lösung ist eine Additionspyramide , in der , die Zahlen, die ursprünglich im Puzzle vorhanden waren, haben wurde unverändert gelassen. Ein solches Puzzle kann mehr als eine Lösung haben.
Ihre Aufgabe ist es, anhand eines zusätzlichen Pyramidenrätsels festzustellen, ob es genau eine Lösung gibt.
Eingang
Sie können Eingaben in einer der folgenden Formen erhalten, aber konsistent sein:
- Array von Schichten.
- Anordnung von Ebenen, die wie eine Pyramide geformt sind und einen konsistenten nicht-positiven ganzzahligen Wert als Trennzeichen zwischen Elementen (jeweils nur einmal verwendet) sowie linker und rechter Abstand verwenden. Der Separator und die Polsterung müssen identisch sein.
- Array von Ebenen mit einem konsistenten gültigen rechten oder linken Abstand (Sie müssen konsistent sein und dürfen in diesem Fall nicht den rechten und den linken Abstand mischen).
Bitte beachten Sie, dass ein konsistenter Wert, der keine streng positive Ganzzahl ist, verwendet werden muss, um eine fehlende Zahl darzustellen. Dieser Wert kann nicht als Auffüllung verwendet werden. Sie können die Ebenen auch verkettet nehmen (Sie können sie immer noch trennen), und die Reihenfolge kann entweder von der Basis nach oben oder von oben nach unten erfolgen.
Ausgabe
Einer von zwei konsistenten unterschiedlichen Werten, wobei einer das Vorhandensein einer eindeutigen Lösung und der andere das Fehlen einer Lösung oder das Vorhandensein von mehr als einer Lösung darstellt.
Regeln
- ist immer wahr, wenn , dh die Eingabe enthält garantiert keine Zahl über zwei anderen Zahlen, die nicht ihre Summe sind, wenn alle drei Zahlen bekannt sind.
- die Pyramide enthält mindestens eine bekannte Zahl.
- Tu diese Dinge nicht .
- Dies ist Code-Golf , also gewinnt die kürzeste Antwort! Lassen Sie sich jedoch nicht davon abhalten, eine Lösung zu veröffentlichen, nur weil Ihre Sprache "zu ausführlich" ist.
Testfälle
Eine Anordnung mit den Schichten von der Oberseite zu der Basis ist für diese Testfälle verwendet, mit 0
repräsentierte.
[[10], [0, 0], [0, 2, 0], [0, 0, 0, 1]] -> True
[[32], [0, 0], [0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]] -> True
[[0], [1, 1]] -> True
[[1], [0, 0]] -> False
[[10], [5, 5], [2, 3, 2], [0, 0, 0, 0]] -> False
[[5], [0, 0], [0, 0, 0]] -> False
Arbeitsbeispiele
Die Testfälle werden hier bearbeitet.
Einzigartige Lösung 1
Schritt 1: .
Schritt 2: .
Schritt 3: .
Schritt 4: .
Die Schritte 5 bis 6 ähneln 4.
Hier haben wir also unsere einzigartige Lösung.
Einzigartige Lösung 2
Schritt 1: Hier gibt es keinen offensichtlichen Ansatz. Versuchen wir also, die minimal möglichen Werte zu verwenden.
Schritte 2-5: Es sieht so aus, als würden die Mindestwerte zu einer Lösung führen. Daher ist dies die einzige Lösung und daher eindeutig.
Hinweis: Es gibt einen Satz über Additionspyramiden-Rätsel im Zusammenhang mit diesem Rätsel, den Sie beweisen können, wenn Sie genau genug nachdenken.
Einzigartige Lösung 3
Dies ist eine offensichtlich einzigartige Lösung.
Keine Lösung 1
Keine Lösung 2
Nicht eindeutige Lösung
Zwei Lösungen:
Da es mindestens zwei Lösungen gibt, gibt es keine eindeutige Lösung.