Python :: Aufgabe #76 :: Lösung #1

2 Lösungen Lösungen öffentlich
#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.
#1
vote_ok
von Veigar (1120 Punkte) - 23.11.2015 um 22:27 Uhr
Quellcode ausblenden Python-Code
#allgemein: Bei jeder prüfung: alle vorhergegangenen ungleich der neuen
#und alle vorhergegangenen +- Differenz ihrer Indexe ungleich der neuen

l=[]


def damenprüfung(x,y):
    ö=0
    for ä in range(len(x)):

        if x[ä]==y or x[ä]+(len(x)-ä)==y or x[ä]-(len(x)-ä)==y:
            ö=ö+1
    if ö>0:
        return("j")
    else:
        return("n")


l.append([])
for i in range(8):
    l[-1].append([i+1])
        
for a in range(7):
    l.append([])
    for p in range(len(l[a])):
        for k in range(8):
            if damenprüfung(l[a][p],k+1)!="j":
                l[-1].append([])
                for s in range(len(l[a][p])):
                    l[-1][-1].append(l[a][p][s])
                l[-1][-1].append(k+1)

print(len(l[7]))

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben