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. Man sieht unmittelbar an der Anzahl der Lösungen, 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 sollte nicht lange auf sich warten lassen:

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

Mit dem Neu-Button wird das Ausgabefeld gelöscht, nicht jedoch das Eingabefeld. Ein möglicherweise noch laufender Rechenvorgang wird abgebrochen.

Es können mehrere durch Semikolon (;) getrennte Gleichungen vorgegeben werden. Dadurch 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. Im unteren Bereich der Anwendung werden anstelle des Fortschrittbalkens zusammenfassend mehrere Werte gezeigt. Links befinden sich alle Buchstaben, die in der Gleichung vorkommen. Daneben in Klammern die Anzahl dieser Buchstaben. Rechts daneben 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 Buchstaben der eingegebenen Gleichung(en) ausgewiesen.

Grenzen

Das Eingabefeld nimmt bis zu 2000 Zeichen auf. Entsprechende Tests zeigten, dass die verfügbare Eingabebreite mit einer Alphametik nutzbar ist und die Berechnung problemlos funktioniert.

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 Terme zwischen den Rechenzeichen, 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 der Auslastung des benutzten Computers kann die Berechnung einige Zeit in Anspruch nehmen. 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. Die korrekte Funktion des Web-Workers erkennt man beispielsweise an der weiterlaufenden Uhr im Kopfbereich und der Aktualisierung des Fortschrittsbalken im unteren Teil der Anwendung während der Berechnung einer Alphametik.


My Homepage

letzte Aktualisierung