Knacking the Streichholz-Puzzle...

Welches Streichholz muss umgelegt werden, damit die Formel stimmt?

Formel:


Anleitung

Die meisten Puzzles dieser Art in den Ratesendungen zu nachtschlafender Zeit auf
Sendern wie 9live (Beispiel) benutzen nur Gleichungen vom Typ a+b=c oder a-b=c
und als Ziffern nur die normale 7-Segment-Schreibweise, z. B.
          (Formel: "1234+567=1891")

Es gibt aber auch abgewandelte Schreibweisen, z. B.
    (Formel: "1!4!*7!=9!-6!-1" oder "evxs=n-b-1")

Um solche Zahlen eingeben zu können, versieht man sie in der Formel mit einem
Ausrufezeichen, oder man benutzt die Buchstaben-Notation:
e für 1, v für 4, s für 7, n für 9, b für 6.

Mit dem Ankreuzfeld [Auch abgewandelte Zahlen testen] kann man solche Zahlen
aus den Ergebnissen verbannen.


Programmbeschreibung

Das Programm (Quelltext hier) benutzt die Brute-Force-Methode, es werden sämtliche
Umlege-Möglichkeiten der Reihe nach ausprobiert. Dazu wird die Formel in eine
Segment-Schreibweise umgewandelt, bei der jedes Zeichen durch eine Reihe aus 12 Einsen
und Nullen repräsentiert wird, die für die 12 möglichen Streichholz-Positionen stehen.
Die "8" in Segment-Schreibweise lautet z. B. "111111100000", das "+" ist "00000011000000".

Es werden auch alle 4:11-Tauschmöglichkeiten getestet, wobei sich die Anzahl der Ziffern ändert:
  Beispiel:     hat die Lösungen     und  

Bislang nicht getestet werden Ungleichungen:
  Beispiel:     liefert noch nicht die Lösung  

Hingegen sind mehrere Gleichheitszeichen durchaus möglich:
  Beispiel:     hat die Lösung  


Release Notes

Dies ist die aktuelle Version vom 29.11.2009 14:37.
Gegenüber der Vorversion vom 29.11.2009 01:20 gab es folgende Änderungen:
- Bessere Dokumentation, übersichtlichere Darstellung.
- Bug: Wenn Formel "evxs=n-b-1" ohne Kreuz [Auch abgewandelte] berechnet wurde, kam Unsinn.
Fehler in der aktuellen Version:
- Der Kommentar zu FORMEL_TO_SEGMENTS spricht von 10 Segmenten, es sind aber 12
   (11 = Schrägstrich fürs Mal-Zeichen, 12 = Anstrich für die abgewandelte Eins). /jb 01.12.2009