我在这里浏览了几个类似的问题,但没有一个问题解决了我的问题,此外,我不确定100%是什么问题。
无论如何,我正在尝试在python中生成一个包含9个列表(每个列表包含9个元素)的列表。由于此列表是用于数独生成器的,因此列表需要符合数独谜题的规则。 这是我试图做的:
def generateBord (mtx) :
while (len(mtx) < 9) and (len(mtx) != 9):
newrow = generateRow(mtx)
mtx.append(newrow)
return mtx
def generateRow (mtx):
counter = 0
row = []
while counter < 9:
num = random.randint(1,9)
idx = len(row)
if (not(num in row)):
for x in mtx:
if (num != x[idx]):
row.append(num)
counter += 1
if (len(row) == 9):
return row
当我尝试运行代码时,它永远不会终止,因此我认为问题是某个地方的无限循环。通过反复试验,我将问题缩小到这一位:
for x in mtx:
if (num != x[idx]):
row.append(num)
counter += 1
但是,我不确定问题到底出在哪里。当调用函数generateBord(mtx)时,我给了它
mtx = []
作为参数。 我希望这不太模糊。这到底是什么问题,我该如何解决?还是我的方法根本不可行?