Python :: Aufgabe #76 :: Lösung #2
2 Lösungen

#76
Das Damenproblem (Teil I)
Fortgeschrittener - Python
von ElPapito
- 07.05.2015 um 11:42 Uhr
Das klassische Damenproblem besteht aus einem 8x8 Schachfeld und 8 Damen.
Die Aufgabe besteht darin die 8 Damen so zu positionieren, dass sie sich gegenseitig nicht bedrohen, d.h. es dürfen keine zwei Damen in der gleichen Zeile/Spalte/Diagonale stehen.
Schreibe ein kleines Programm, welches ausgibt wie viele Lösungen existieren.
Die Aufgabe besteht darin die 8 Damen so zu positionieren, dass sie sich gegenseitig nicht bedrohen, d.h. es dürfen keine zwei Damen in der gleichen Zeile/Spalte/Diagonale stehen.
Schreibe ein kleines Programm, welches ausgibt wie viele Lösungen existieren.
#2

von hak (980 Punkte)
- 13.09.2016 um 19:29 Uhr

def eq(solutions, queens, fields): if len(queens) == 8: solutions.append(queens) else : next_queen = [ f for f in fields if f[1] == len(queens)] # one queen per row for q in next_queen: new_queens = list(queens) new_queens.append(q) new_fields = [f for f in fields if not ( f[0]==q[0] or f[1]==q[1] or f[0]-f[1]==q[0]-q[1] or f[0]+f[1]==q[0]+q[1] )] eq(solutions, new_queens, new_fields) def eight_queens(): solutions = [] eq(solutions, [], [[x,y] for x in range(8) for y in range(8)]) return len(solutions)
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1