Я хочу заполнить nxn-матрицу n элементами, так что каждая строка и каждый столбец имеют ровно 1 элемент. Например. матрица 3x3 может иметь следующие возможные решения:Заполнение n * n матрицы с n элементами
1 0 0 0 1 0 0 0 1
0 1 0 1 0 0 1 0 0
0 0 1 0 0 1 0 1 0
Ниже приводится код, который я написал:
arr=[[0 for x in xrange(n)] for x in xrange(n)]
i=0
while i<n:
j=0
while j<n:
arr[i][j]=0
j+=1
i+=1
i=0
while i<n:
j=0
while j<n:
x=0
while x<n:
if((arr[i][x-1]==1) or (arr[x-1][j]==1)):
break
x+=1
if(x==n-1 and arr[i][n-1]==0 and arr[n-1][j]==0):
arr[i][j]=1
j+=1
i+=1
Но все элементы Stiil 0. Может кто-то пожалуйста, указать на мою ошибку.
Пожалуйста, дайте образец матрицы вы хотите. – zhangyangyu
@zhangyangyu: я обновил вопрос примерами – nish
Вам нужно вычислить несколько возможных решений или достаточную диагональную матрицу? –