AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Magisches Quadrat per Backtracking

Offene Frage von "Klaus135"
Ein Thema von Klaus135 · begonnen am 17. Jan 2014 · letzter Beitrag vom 17. Jan 2014
Antwort Antwort
Klaus135

Registriert seit: 17. Jan 2014
3 Beiträge
 
#1

Magisches Quadrat per Backtracking

  Alt 17. Jan 2014, 18:25
Hallo,
unser Informatiklehrer ist bedauerlicherweise eine totale Pfeife und so arbeite ich mir zum Verständnis üblicherweise alle Projekte aus der Schule selbst nach und versuche sie zu begreifen und diesmal handelt es sich um das Programmieren eines magischen Quadrats(alle Zeilen, Spalten und Diagonalen eines Quadrats mit einer Kantenlänge von n bilden die gleiche Summe, weobeiu jede Zahl von 1 bis n^2 genau ein Mal vorkommt.
1. Das Quadrat stelle ich durch ein Stringgrid mit Rowcount und Colcount=n dar.
2. In dieses Stringgrid schreibe ich nun in "Reihenfolge" die Zahlen von 1 bis 9(3x3).
3. Die Zahlen im Quadrat werden so miteinander vertauscht, dass jede mögliche Kombination ein Mal vorkommt.
4. In jener Prozedur unter 3. befindet sich eine Abbruchbedingung(Magisches Quadrat erfüllt), bei der die Lösung in einem Memo oder ähnlichem gespeichert wird.

Die Abbruchbedingung, als eine Funktion mit Boolean-Augabe, zu formulieren ist genausowenig ein Problem wie das Befüllen des Stringgrids, mein Problem liegt im 3. Schritt, ich beiße mir seit Stunden die Zähne an diesem Tausch-Algorithmus aus. Ein Mal Durchtauschen geht ja noch, aber wie klappere ich alle Möglichkeiten ab, müsste man das mit einer rekursiven Prozedur umsetzen? Mir fehlt einfach der Ansatz :/
Schon Mal danke im Voraus
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Magisches Quadrat per Backtracking

  Alt 17. Jan 2014, 18:31
Backtracking impliziert doch schon Rekursion
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Klaus135

Registriert seit: 17. Jan 2014
3 Beiträge
 
#3

AW: Magisches Quadrat per Backtracking

  Alt 17. Jan 2014, 18:36
Klar, und da ich noch keine rekursiven Instanzen in meinem Programm habe, lag ja auch di Vermutung nahe, dass das jetzt kommen müsste aber ich bin nunmal blutiger Anfänger sowohl ind er Rekursion als auch im Backtracking
Das ist ja im übrigen der Grund, warum unser Informatiklehrer so eine Pfeife ist, wir haben nie über Rekursion gesprochen im Unterricht und jetzt machen wir Backtracking...so gesehen ist also mein Reskursionswissen so beschränkt, wie es eben sein kann, wenn man sich das heute Nachmittag beigebracht hat
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#4

AW: Magisches Quadrat per Backtracking

  Alt 17. Jan 2014, 19:07
Verwende das Stringgrid nur für die Darstellung. Arbeite lieber mit einem Array [0..2,0..2] of Byte , das geht viel viel schneller.

Wie viele Kombinationen gibt es eigentlich? Wie viele sind rotationssymetrisch oder spiegelbildlich zu anderen bereits untersuchten Kombinationen?

Aber toll, das Du das selber machen willst (wirklich!) und -typisch- das so ein Lehrer ein Vollpfosten ist. Ich weiss auch nicht, weshalb die größten Nulpen Leerer werden.
  Mit Zitat antworten Zitat
Klaus135

Registriert seit: 17. Jan 2014
3 Beiträge
 
#5

AW: Magisches Quadrat per Backtracking

  Alt 17. Jan 2014, 19:19
Das waren auch so die Fragen, die ich mir gestellt habe steht bei einem Quadrat der Ordnung 3 immer die 5 in der Mitte? Möglichkeiten für die Belegung bei Ordnung n gibt es ja (n^2)!, wenn man einfach alles durchprobiert, aber wäre das dann überhaupt noch Backtracking?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz