TRIG Kryptogramm

Aufgabe:

Was auf Überprüfung wartet. Die Rechenzeit wird wohl heftig sein, wenn man alle Lösungen will.

Wie man die Gleichung bekommt.

Code:

Funktionen1:[SIN,COS,TAN,CSC,SEC,COT]$
Funktionen2:map(string,Funktionen1)$

f(x):=charlist(string(x))$
Funktionen3:map(f,Funktionen1)$
Funktionen4:makelist(map(parse_string,Funktionen3[i]),i,1,6)$

F1:[100,10,1]$
F2:[1000,100,10,1]$
Zahlen:makelist((Funktionen4[i].F1),i,1,6)$

Summe:sum(Zahlen[i],i,1,6)$
TRIG:[T,R,I,G].F2$

Gleichung:Summe=TRIG;

wxMaxima:

murks1

Maxima Onlinehttp://maxima-online.org/?inc=r-1314696322

Omega Explorer:

omega

Probieren geht nicht! Es würde viel zulange dauern.

M_SHAH_Schleifen

Es gibt offenbar eine Methode, wie man Kryptogramme besser lösen kann. Eine Android App bringt in großer Geschwindigkeit die ersten 200 von 304 Möglichkeiten!

krypto_1_2
Das Kryptogramm als Gleichung eingeben.
krypto_2_2.jpg
Der Kryptogramm Löser findet nur 200 von den 304 Lösungen.
Nach einem Tipp von Manan Shah, ein Versuch mit Permutationen.

Code:

zaehler:0$
buchstabe:[A,C,E,I,N,O,S,T,R,G]$
ziffer:[0,1,2,3,4,5,6,7,8,9]$
wert:makelist(buchstabe[i]=ziffer[i],i,1,10)$
gleichung:101*T+211*S+20*O+2*N+10*I+10*E+302*C+10*A=1000*T+100*R+10*I+G$
moeglich:listify(permutations(ziffer))$
for i:1 thru 10! do
block(
wert:makelist(buchstabe[j]=moeglich[i][j],j,1,10),
if is(ev(gleichung,wert)) then
block(
zaehler:zaehler+1,
disp(zaehler,wert)
)
)$

Testlauf mit wxMaxima (nach 8 Stunden bei 25 von 304):

m_shah_test8
Sollten mehr als 304 Lösungen gefunden werden, müsste man führende Nullen durch Programmänderung ausschließen.
Man kann die Aufgabe mit Maxima lösen. Das geht aber viel zu langsam. Laut Manan Shah soll es mit Python sehr schnell gehen Daher werden ich auch ein Python Programm schreiben. Irgendwann.