SEND + MORE = MONEY

Aufgabe:
Diese Aufgabe hat man mir 1966 als Schüler der Hauptschule Tamsweg gestellt. Das heißt, man kann es ohne Computer ausknobeln.
Bei einem Kryptogramm muss an die Buchstaben durch (verschiedene) Ziffern ersetzen.

Programmcode:

Buchstaben:sort(listify({s,e,n,d,m,o,r,e,m,o,n,e,y}));
m:1;
for d:0 thru 9 do
for e:0 thru 9 do
for n:0 thru 9 do
for o:0 thru 9 do
for r:0 thru 9 do
for s:0 thru 9 do
for y:0 thru 9 do
block(
ev(Buchstaben:[d,e,m,n,o,r,s,y]),
if (1000*s+100*e+10*n+d)
+1000*m+100*o+10*r+e
=10000*m+1000*o+100*n+10*e+y then
if cardinality(setify(Buchstaben))= length(Buchstaben) then
print(Buchstaben,1000*s+100*e+10*n+d,"+",1000*m+100*o+10*r+e,
"=",10000*m+1000*o+100*n+10*e+y)
);

Lösung:

[7,5,1,6,0,8,9,2]9567+1085=10652

Achtung: lange Laufzeit! Das Programm muss optimiert werden.

Maxima Online: wird erst eingearbeitet

Programm-Block mit geänderter Ausgabe:

block(
ev(Buchstaben:[d,e,m,n,o,r,s,y]),
if (1000*s+100*e+10*n+d)
+1000*m+100*o+10*r+e
=10000*m+1000*o+100*n+10*e+y then
if cardinality(setify(Buchstaben))= length(Buchstaben) then
disp(Buchstaben,"",1000*s+100*e+10*n+d,"+",1000*m+100*o+10*r+e,
"=",10000*m+1000*o+100*n+10*e+y)
);

Über Johnny Weilharter

Direktor i. R. der Bundeshandelsakademie und Bundeshandelssschule in Tamsweg, Österreich
Dieser Beitrag wurde unter Creative Commons, Kryptogramme, RÄTSEL veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s