16 | 3 | 2 | 13 |
5 | 10 | 11 | 8 |
9 | 6 | 7 | 12 |
4 | 15 | 14 | 1 |
Ein magisches Quadrat der Länge ist eine matrix-artige Anordnung der Zahlen 1 bis , bei der die Summe jeder Zeile, jeder Spalte und der beiden Hauptdiagonalen den gleichen Wert ergibt.
In Abhängigkeit von der Länge ergibt sich zwingend die zugehörige Zeilen-, Spalten- und Diagonalen-Summe. Sie wird deswegen auch magische Konstante genannt. Für magische Quadrate der Länge 1, 2, 3 und 4 erhalten wir die magischen Konstanten 1, 51, 15 und 34. Wie sieht die allgemeine Formel für ein magisches Quadrat der Länge aus mit ?
Zu schreiben ist ein Oberon-Programm, das die Länge einliest und die zugehörige magische Konstante ausgibt.
Hinweis: Für die Division ganzer Zahlen ist der Operator
DIV
zu verwenden. Beispiel: 9 DIV 4
liefert 2.
Eine Eingabe von 0 oder negativen Zahlen für ist nicht sinnvoll. Da es aber durch Versehen dennoch geschehen kann, ist es besser, zuerst zu überprüfen, ob positiv ist. Falls ja, kann die Berechnung durchgeführt werden. Andernfalls sollte eine Fehlermeldung ausgegeben werden.
Die sich selbst zählende Folge beginnt mit einer 1, gefolgt von zwei mal die 2, drei mal die 3 und so weiter. Überraschenderweise läßt sich das -te Element dieser Folge direkt mit folgender Formel berechnen:
Die Notation (Gausssche Klammer) liefert die größte ganze Zahl, die kleiner oder gleich ist.
Zu schreiben ist ein Oberon-Programm, das einliest und ausgibt (für ).
Hinweise: Für die Quadratwurzel steht die Funktion Math.Sqrt
zur Verfügung. Um diese Funktion nutzen zu können, muß das
Modul Math
in der IMPORT
-Anweisung mit aufgezählt
werden. Für die Gausssche Klammer
kann in
Oberon die Funktion ENTIER
verwendet werden. Dabei ist
zu beachten, daß das Ergebnis dieser Funktion vom Typ LONGINT
ist und daher die Variablen entsprechend deklariert sein sollten.
Die Formel wurde der Aufgabe 3.23 auf Seite 97 dem Buch von Graham, Knuth und Patashnik ``Concrete Mathematics'' entnommen (Addison-Wesley-Verlag, 1994).
Viel Erfolg!