Ein spanisches Webinterface: http://maxima.cesga.es/
Das habe ich in den Seminarunterlagen von Wilhelm Haager gefunden 🙂
Es gibt eine sehr schöne Ausgabe, aber die zugrunde liegende Maxima-Version dürfte stark veraltet sein. Welche Version verwendet wird. konnte ich noch nicht herausfinden.
Einen Test können wir mit dem Kryptogramm „EINS+EINS=ZWEI“ machen:
(%i1) |
for e:0 thru 9 do for i:0 thru 9 do for n:0 thru 9 do for s:0 thru 9 do for w:0 thru 9 do for z:0 thru 9 do block( ev(Buchstaben:[e,i,n,s,w,z]), if 2*(1000*e+100*i+10*n+s)=1000*z+100*w+10*e+i then if cardinality(setify(Buchstaben))= length(Buchstaben) then print(Buchstaben) ); [0, 8, 5, 4, 7, 1] [1, 4, 0, 7, 8, 2] [1, 4, 5, 7, 9, 2] [1, 6, 0, 8, 2, 3] [1, 8, 0, 9, 6, 3] [1, 8, 5, 9, 7, 3] [2, 8, 1, 4, 6, 5] [2, 8, 6, 4, 7, 5] [3, 4, 1, 7, 8, 6] [3, 6, 1, 8, 2, 7] [3, 8, 1, 9, 6, 7] [4, 2, 7, 1, 5, 8] |
Man sollte dieses Programm noch modifizieren. „e“ und „z“ können nicht Null sein, weil führende Nullen ja nicht üblich sind. Durch diese Modifikation wird der Programmablauf wesentlich beschleunigt.
So geht es: http://maxima-online.org/?inc=r1869684681
Wie das Programm funktioniert:
In den Zeilen 1 bis 6 werden alle Kombinationen der Buchstabenliste generiert.
In Zeile 9 wird das Kryptogramm geprüft.
In Zeile 10 wird darauf geachtet, dass kein Buchstabe mehrfach für Ziffern verwendet wird. In einer Menge gibt es nämlich nur wohlunterschiedene Objekte unserer Anschauung oder unseres Denkens!
Pingback: Ein Kryptogramm lösen | Mathematik mit Maxima