Randomisierte Buchstaben Matrix
Verfasst: Dienstag 15. Januar 2013, 12:17
halllo python forum,
ich möchte mit python eine randomisierte buchstaben matrix erstellen.
die matrix besteht aus 26 zeilen und 26 spalten. jedoch muss jede zeile und spalte genau einmal jeden buchstaben des alphabets enthält.
mein bisheriger code:
die endlosschleife in der funktion create_matrix prüft solange einen zufälligen buchstaben, bis row_check und column_check True zurückgeben.
der code erzeugt leider eine endlosschleife. ich schätze, dass der fehler irgendwas mit der funktion column_check zu tun hat.
hat irgendwer einen tipp für mein problem?
ich möchte mit python eine randomisierte buchstaben matrix erstellen.
die matrix besteht aus 26 zeilen und 26 spalten. jedoch muss jede zeile und spalte genau einmal jeden buchstaben des alphabets enthält.
mein bisheriger code:
Code: Alles auswählen
import random
import string
# functions
def row_check(x, y, ch, row):
for i in range(x):
if ch == row[i]:
return False
return True
# hier sollte der fehler liegen
def column_check(x, y, ch, matrix):
for i in range(y):
if ch == matrix[i][x]:
return False
return True
def create_matrix(matrix, row):
for y in range(26):
for x in range(26):
while True:
ch = random.choice(string.ascii_uppercase)
check_r = row_check(x, y, ch, row)
if check_r == False:
continue
check_c = column_check(x, y, ch, matrix)
if check_c == False:
continue
else:
break
row = row + ch
matrix.append(row)
row = "" # reset
def print_matrix(matrix):
for y in range(26):
for x in range(26):
print matrix[y][x],
print
# main
matrix = []
row = ""
create_matrix(matrix, row)
print_matrix(matrix)
der code erzeugt leider eine endlosschleife. ich schätze, dass der fehler irgendwas mit der funktion column_check zu tun hat.
hat irgendwer einen tipp für mein problem?