Algorithmus


Damen

Hier verwenden wir ein rekursives Back Tracking Verfahren:
Das Schachbrett hat n Zeilen und n Spalten.
Wir setzen die n Damen nacheinander nach folgender Weise:Dies wiederholt sich, bis die erste Dame nicht mehr weiter 'aufsteigen' kann.

Optimierung:



Springer

Hier werden folgende Strukturen zur Verwaltung der Züge verwendet:

Optimierung:

Der Springer wechselt mit jedem Zug die Farbe des Schachbretts. Dies hat Auswirkungen für den Fall:
  1. Comeback
    Sollen nur geschlossende Zugfolgen (der letzte Springerzug könnte den ersten wieder erreichen) gefunden werden dann gilt:
    Es braucht gleich viele schwarze wie weiße Felder.
    Dies ist nur bei geradzahligen n gegeben.
    Bsp.:n=4: und n=3: .

    Damit gibt es keine Lösung für ungerade n mit der -comeback Option.

  2. ohne Comeback mit n=ungerade
    Ein Start ist nur auf ungeraden Feldern möglich! Also den Feldern welche von der Färbung häufiger vorkommen.
    Hier am Bsp mit n=5 die möglichen Start Positionen:

Weitere hilfreiche Masnahmen:
  1. Spiegelung & Rotation
    Streng genommen müssen nur wenige Startpositionen betrachtet werden:
    Alle anderen Startpositionen und Felder können dann berechnet werden!

  2. ComeBack Spiegelung
    Mit dieser Option starten wir in einer Ecke (Position 0) und haben nur 2 Möglichkeiten. Es reicht nun, die eine zu verfolgen, da die andere als Spiegelung an der Diagonale generiert werden kann. Allerdings stellt sich heraus, dass dies schon passiert.

  3. Sackgasse erkennen
    Wird eine Position besetzt, so ändert sich die Anzahl der freien Links.
    Gibt es nur noch 1 Link im Umfeld der neu zu bestzenden Position so ist dies eine Sackgasse!
Bsp:

1	 .	 .	 .	3	 .	
 .	 .	2	 .	 .	 .	
 .	 .	 .	 .	 .	4	
 .	 .	8	 .	 .	 .	
7	 .	 .	 .	5	 .	
 .	 .	6	 .	 .	 .	

Setze
no =  9
n  = 31
next[n] 18 20 27

LinkCntNow [31] 2   .. aber next[n]== 20 tausch mit 27
LinkCntNow [18] 3
LinkCntNow [20] 5
LinkCntNow [27] 5

Magisches Quadrat

Die Quersumme bei einem magischen Quadrat hängt von der Kantenlänge n des Quadrates ab. Dabei gibt es diese Relationen:
KantenlängeQuersumme
315
434
565
6111
7175
n (1+n²)/ 2 * n


Kennt man ein magisches Quadrat mit der Kantenlänge n, so kann diese erweitert werden auf n' = n+2. Nachfolgend eine Tabelle mit Werten:
Kantenlänge Kantenlänge
erweitert
untere
Randfelder
inneres
Quadrat
obere
Randfelder
1 3 1..4 5..5 6..9
2 4 1..6 7..10 11..16
3 5 1..8 9..17 18..25
4 6 1..10 11..26 27..36
5 7 1..12 13..37 38..49
6 8 1..14 15..50 51..64
7 9 1..16 17..65 66..81
n n+2 1 .. 2(n+1) 1+2(n+1) .. n²+2(n+1) n²+2(n+1)+1 .. n²

Wichtig:Die gegenüberliegende Randfelder erhalten stets die gleiche Summe.
23       7       6       4      25
21      10      15      14       5			Untere Randfelder:  '1' ...  '8'
18      17      13       9       8			Inneres Quadrat:    '9' ... '17'
 2      12      11      16      24			Obere Randfelder:  '18' ... '25'
 1      19      20      22       3				

Rolf LANG - Remsstr. 39 - 71384 Weinstadt | 07:37:54 up 29 days, 10:04, 1 user, load average: 0.18, 0.12, 0.10