Variation: Magisches Quadrat mit fester Summe

Nun wollen wir noch einen kleinen Schritt weiter gehen. Wie wäre es, ein magisches Quadrat zu erstellen, bei dem die Summe vorher feststeht? Du könntest dann zum Beispiel eine Person, die über 21 ist, nach ihrem Alter fragen und für sie ein ganz persönliches magisches Quadrat ihres Alters erstellen. Das macht Eindruck!

Wie müssten wir das Programm abändern?

Für diese Variante werden also nicht mehr die Werte a und b eingegeben, sondern es wird nur die gewünschte Summe eingegeben. Aus der Summe soll jetzt a und b berechnet werden. Der Rest vom Programm bleibt gleich (die Ausgabe der Zahlen). Die Summe muss größer als 21 sein, denn 22 ist die Summe des kleinsten magischen Viererquadrats.

Wenn die Summe also a*21 plus b ist, dann kann man umgekehrt auch a und b aus einer vorgegebenen Summe ermitteln. Wenn du gut in Mathe bist, kommst du vielleicht selbst drauf, ansonsten werde ich es dir sagen:

So etwas haben wir doch schon mal gemacht – im Rechner mit Rest. Die Formel ist also genauso:

[ ! ]  Achtung

Diese Methode funktioniert für alle Zahlen, die nicht Vielfache von 21 sind – also nicht für 21,42,63,84 …, weil dort die zweite Zahl 0 wäre. Man könnte diese Fälle im Programm gesondert behandeln – aber der Einfachheit halber belassen wir es jetzt einmal dabei.

Und so sieht dann unser geändertes Programm aus:

summe = input("Gib eine Summe (über 21) ein:")
# a und b berechnen:
a = summe // 21
b = summe % 21
# Magisches Quadrat ausgeben:
print "------------------------------------------------------------"
print a+b,a,12*a,7*a
print 11*a,8*a,b,2*a
print 5*a,10*a,3*a,3*a+b
print 4*a,2*a+b,6*a,9*a
print "------------------------------------------------------------"

Jetzt kannst du (fast) jede beliebige Summe von 22 bis unendlich eingeben, und Python wird dir daraus ein gültiges magisches Quadrat berechnen!

Magisches Quadrat für die Summe 25

Abbildung 7.10    Magisches Quadrat für die Summe 25

Zusammenfassung