Puzzle #69

Aufgabe:

Mathematischer Hintergrund:

In der Grundschule haben wir schon das dezimale Zahlensystem kennengelernt und die Addition solcher Zahlen. Gleichungen sind spätestens in der Sekundarstufe I wichtig geworden.


Code
:

zahl1:[h,o,u,s,e];
zahl2:[c,a,s,t,l,e];
zahl3:[h,o,l,m,e,s];
ziffern:setify(flatten([zahl1,zahl2,zahl3]))$
f5:[10^4,10^3,10^2,10^1,10^0]$
f6:[10^5,10^4,10^3,10^2,10^1,10^0]$
gleichung:zahl1.f5+zahl2.f6=zahl3.f6$
ziffern:{0,1,2,3,4,5,6,7,8,9}$
zaehler:0$
disp("[#. [a,c,e,h,l,m,o,s,t,u]]")$
for a in ziffern do
 for c in setdifference(ziffern,{0,a}) do
  for e in setdifference(ziffern,{a,c}) do
   for h in setdifference(ziffern,{0,a,c,e}) do
    for l in setdifference(ziffern,{a,c,e,h}) do
     for m in setdifference(ziffern,{a,c,e,h,l}) do
      for o in setdifference(ziffern,{a,c,e,h,l,m}) do
       for s in setdifference(ziffern,{a,c,e,h,l,m,o}) do
        for t in setdifference(ziffern,{a,c,e,h,l,m,o,s}) do
         for u in setdifference(ziffern,{a,c,e,h,l,m,o,s,t}) do
          if is(ev(gleichung))then block(
             ev(zaehler:zaehler+1),
             disp([zaehler,[a,c,e,h,l,m,o,s,t,u]])
          )$

Mathematischer Hintergrund:

Hier wird sogar die Mengelehre verwendet. Um die Anzahl der Berechnungen in einem vertretbaren Rahmen und damit die Rechenzeit niedrig zu halten, wird in jeder der geschachtelten Schleifen die Differenzmenge verwendet. Es werden damit Permutationen der möglichen Ziffern iteriert und führen Nullen ausgeschlossen. Wenn man das nicht tut, würden 10 Milliarden Durchläufe der Schleifen notwendig. Bei der Formulierung der Gleichung wird die Skalarmultiplikation von Vektoren verwendet.


wxMaxima
:

puzzle69
Das ist nur die Ausgabe! Es gibt also 6 Lösungen für diese Puzzle #69, wie Mannon Shah in der Aufgabe behauptet.

Vroomlab:

vroomlab 69
Es gibt also 6 Lösungen!