Alphametik - Info zur Online-Applikation


Zweck

Eine Alphametik ist eine Buchstaben-Gleichung, die sich erst berechnen lässt, wenn die Buchstaben durch Ziffern ersetzt sind. Jeder Buchstabe ist genau einer Ziffer zugeordnet. Damit besteht eine Alphametik aus bis zu zehn verschiedenen Buchstaben. Eine echte Alphametik lässt sich nur mit einer einzigen Buchstaben-Ziffern-Kombination lösen.

Man kann mit dieser Online-Anwendung Alphametiken zwar auch lösen, vor allem aber verifizieren. An der Anzahl der Lösungen erkennt man ummittelbar, ob es sich um eine echte Alphametik handelt.


Bedienung

Jede einzugebende Gleichung besteht aus Buchstabenwerten, die mit den Zeichen der vier Grundrechenarten verbunden sein können.
In jedem Fall muss mindestens ein Gleichheitszeichen vorhanden sein.

Zur Berechnung einer Alphametik trägt man sie im Eingabefeld ein.
Beispiel: Wikipedia = Essay * Werk
Gestartet wird mit der Eingabe-Taste oder dem Start-Button.

Das Ergebnis:

Gleichung: Wikipedia = Essay * Werk
Ergebnis: 736349130 = 92205 * 7986 (74%)
Genau eine Lösung (8.327 ms)


Der Neu-Button löscht das Ausgabefeld, nicht jedoch das Eingabefeld. Möglicherweise noch laufende Berechnungen werden abgebrochen.

Mehrere Gleichungen werden durch ein Semikolon (;) getrennt. Damit ergeben sich zusätzliche Möglichkeiten.
Beispiel Cross-Number-Rätsel:

AB+CB=DB
***
CB-E=E
===
ABB-EB=CEB

Nach der Eingabe der sechs Gleichungen

ab + cb = db; cb - e = e; abb - eb = ceb; ab * cb = abb; cb * e = eb; db * e = ceb

erhält man

Gleichung: ab + cb = db ; cb - e = e ; abb - eb = ceb ; ab * cb = abb ; cb * e = eb ; db * e = ceb
Ergebnis: 20 + 10 = 30 ; 10 - 5 = 5 ; 200 - 50 = 150 ; 20 * 10 = 200 ; 10 * 5 = 50 ; 30 * 5 = 150 (20%)
Genau eine Lösung (119 ms)


Den Nutzen, mehrere Gleichungen eingeben zu könneen, zeigt auch die Lösung folgender Aufgabe:

 W G V K W : W J D = K S 
 W S N S
     K Y W 
     D D N
     N K N (Rest)

Schon nach der Eingabe der ersten Zeile wgvkw : wjd = ks ergeben sich zwei Lösungen.

Die sind allerdings nicht richtig. Der Rest aus der letzten Zeile der Aufgabe ist nicht berücksichtigt.
Um diesen Rest zu berücksichtigen, kann man die Gleichung ein wenig umstellen.
So beispielsweise: wgvkw - nkn = ks * wjd.
Der Rest ist dann Bestandteil der Gleichung, ein möglicher Konflikt zwischen Punkt- und Strichrechnung ist auch gleich noch umgangen.
Nur werden jetzt 24 Lösungen ausgewiesen. Die Richtige ist übrigens schon dabei.

Mit einer weiteren Gleichung kann man dem Script zusätzliche Informationen zur Verfügung stellen.
Beispielsweise mit dem Wert der zweiten Zeile der Aufgabe.
Vielleicht so: wsns = k * wjd.
Das daraus errechnete Ergebnis zeigt dann bereits die richtige Lösung:

Gleichung: wgvkw - nkn = ks * wjd ; wsns = k * wjd
Ergebnis: 24092 - 191 = 93 * 257 ; 2313 = 9 * 257 (23%)
Genau eine Lösung (3.487 ms)


In diesem Beispiel ist vollkommen egal, welche Information aus dem mittleren Teil der Aufgabe als zusätzliche Gleichung verwendet wird (wsns = k * wjd, wgvk - wsns = ky, ddn = s * wjd, kyw - ddn = nkn). In jedem Fall wird die richtige Lösung ausgewiesen.
Durch Eingabe aller Gleichungen wäre die komplette Aufgabe sogar im Handumdrehen verifiziert.

Statt Buchstaben können an einzelnen Stellen auch Ziffern eingegeben werden. Die werden dann als fest vorgegeben interpretiert. Eine fest vorgegebene Null an erster Stelle einer Zahl wird bei einem korrekten Ergebnis ausnahmsweise ausgegeben, auch wenn es sich in dem Fall um eine führende Null handelt. Zahlen mit führenden Nullen werden ansonsten ignoriert, weil sie in einer Alphametik per Definition nicht vorkommen.


Aufbau

Die Anwendung ist ein JavaScript und läuft mit den gängigen Web-Browsern und auf verschiedenen Betriebssystemen. Sogar der inzwischen etwas betagte und manchmal eher etwas störrische Internet-Explorer lässt sich für eine korrekte Funktion des Scripts überreden. Auch auf Mobiltelefonen lassen sich so Alphametiken berechnen.

Interner Ablauf

Der Kern der Software ermittelt nacheinander alle in Frage kommenden Ziffernkombinationen. Bei zehn verschiedenen Buchstaben sind das 10 Fakultät (3.628.800) Kombinationen. Mit jeder dieser Kombination werden die Buchstaben der eingegebenen Gleichung(en) probeweise durch die Ziffern der jeweiligen Kombination ersetzt und damit die daraus entstandene Gleichung berechnet. Wenn dann alle eingegebenen Gleichungen aufgehen, wird die aktuelle Kombination als positives Ergebnis betrachtet und die so entstandenen Zahlenwerte umgehend als Ergebnis ausgegeben.

Der Prozentwert am Ende des Ergebnisses zeigt, in welchem Teil der Berechnung das Ergebnis gefunden wurde. Dieser Prozentwert entspricht dem angezeigten Prozentwert im Fortschrittsbalken. 100% sind dabei alle zu betrachtenden Kombinationen.

Die Werte der eingegebenen Gleichung(en) werden bei der Berechnung unabhängig von Strich- und Punktrechnung streng von links nach rechts interpretiert.
Das ist bei der Erstellung der Gleichung zu berücksichtigen.

Nach erfolgter Berechnung wird die Anzahl der gefundenen, positiven Ergebnisse und die gesamte Laufzeit der Berechnung in Millisekunden angezeigt (weitere Informationen dazu).
Im unteren Bereich der Anwendung werden anstelle des Fortschrittbalkens zusammenfassend mehrere Werte gezeigt. Links zunächst alle Buchstaben, die in der Gleichung vorkommen. Daneben in Klammern die Anzahl dieser Buchstaben. Dann die Anzahl der insgesamt notwendigen Durchläufe. Das ist die Anzahl Kombinationen, die sich aus der Anzahl Buchstaben links in dem Feld ergibt. Nach der Abküzung Dl wird die Anzahl der verarbeiteten, verschiedenen Buchstaben der eingegebenen Gleichung(en) ausgewiesen.

Grenzen

Das Eingabefeld nimmt bis zu 2000 Zeichen auf. Es zeigte sich, dass die verfügbare Eingabebreite zur Berechnung einer Alphametik nutzbar ist.

Die Berechnungen erfolgen mit ganzen Zahlen. Als größte sichere Ganzzahl wird für JavaScript mit MAX_SAFE_INTEGER (9.007.199.254.740.991) eine 16-stellige Zahl ausgewiesen. Versuche mit über 22-stelligen Zahlen lieferten allerdings auch korrekte Ergebnisse.

Nicht begrenzt ist die Anzahl der durch Rechenzeichen getrennter Terme (Buchstaben-Variablen), die Anzahl der durch Gleichheitszeichen getrennter Teilgleichungen und die Anzahl der durch Semikolon getrennter, separater Gleichungen.

Der Web-Worker

Abhängig von Umfang der Eingabe, der Leistungsfähigkeit und Auslastung des Computers kann die Berechnung einige Zeit in Anspruch nehmen (weitere Informationen dazu).
Für einen flüssigen Ablauf und zum Vermeiden sonst auftauchender Fehlermeldungen wird die Software im Hintergrund mit einem Web-Worker ausgeführt. Ein Web-Worker ist seit einigen Jahren Bestandteil von JavaScript. Der Fortschrittsbalken im unteren Teil der Anwendung beispielsweise wird nur bei bei funktionierendem Web-Worker aktualisiert.


My Homepage

letzte Aktualisierung