Wie kann man die magisch zahl in einem magicsquare ermitteln in java mithilfe: public boolean checkSquare() {}?

wunschname0302  22.05.2023, 11:29

Elaborate please

martin8324834 
Fragesteller
 22.05.2023, 11:31

Wir müssen ein MagicSqure erstellen und dann die Magicnumber ermittlen

2 Antworten

Wie kann man die magisch zahl in einem magicsquare ermitteln in java mithilfe: public boolean checkSquare() {}?

Schau dir eine Definition eines magischen Quadrats an:

In der Mathematik versteht man unter einem magischen Quadrat der Ordnung n ein Quadrat der Seitenlänge n, auf dessen Feldern n 2 paarweise verschiedene natürliche Zahlen so platziert werden, dass jede Zeile und jede Spalte sowie die beiden Diagonalen die gleiche Summe ergeben. [2]

https://de.wikipedia.org/wiki/Magisches_Quadrat

Das lässt sich leicht mit Schleifen implementieren. Alternativ schau dir auf der Seite den Abschnitt "Berechnung der magischen Zahl" an, da ist das auch - mit Erklärung - als einfache Formel in Abhängigkeit der Größe n angegeben

Sollte die Methode auch überprüfen, ob ein Quadrat ein magisches Quadrat ist, müsstest du für jede Zeile, jede Spalte und die Diagonalen die Summe berechnen und überprüfen, ob diese eben gleich ist

Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)

Du kannst alle Summen in einer Schleife ermitteln.

SumD1 = 0;
SumD2 = 0;
for(i=0;i<arr.length;i++){
  SumZeile = 0;
  SumSpalte = 0;
  for(j=0;j<arr[i].length;j++){
   SumZeile += arr[i][j];
   SumSpalte += arr[j][i];
  }
  if(i==0)
    Summe = SumZeile; // Referenzsumme
  SumD1 += arr[i][i];
  SumD2 += arr[i][arr.length-1-i];
  
  if(SumZeile <> Summe || SumSpalte <> Summe)
    return false;
}
if(SumD1 <> Summe || SumD2 <> Summe)
  return false;
return true;

(ungetestet)