数独神经网络

0 投票
2 回答
810 浏览
提问于 2025-04-18 04:48

我正在尝试用Python创建一个数独棋盘,并让神经网络运行并学习如何解决它。但是,我在设置这些初始值为0时遇到了问题。我不想一个一个地写a1=0,a2=0等等。有没有更快的方法可以简单地给这些值赋值呢?谢谢。

def create():
print '| - - - | - - - | - - - |',
print '|', a1, a2, a3, '|', b1, b2, b3, '|', c1, c2, c3, '|',
print '|', a4, a5, a6, '|', b4, b5, b6, '|', c4, c5, c6, '|',
print '|', a7, a8, a9, '|', b7, b8, b9, '|', c7, c8, c9, '|',
print '| - - - | - - - | - - - |',
print '|', d1, d2, d3, '|', e1, e2, e3, '|', f1, f2, f3, '|',
print '|', d4, d5, d6, '|', e4, e5, e6, '|', f4, f5, f6, '|',
print '|', d7, d8, d9, '|', e7, e8, e9, '|', f7, f8, f9, '|',
print '| - - - | - - - | - - - |',
print '|', g1, g2, g3, '|', h1, h2, h3, '|', i1, i2, i3, '|',
print '|', g4, g5, g6, '|', h4, h5, h6, '|', i4, i5, i6, '|',
print '|', g7, g8, g9, '|', h7, h8, h9, '|', i7, i8, i9, '|',
print '| - - - | - - - | - - - |',

2 个回答

1

在Python中处理这种结构时,我强烈建议你看看 numpy.matrix 这个东西。

你只需要写

>>> import numpy
>>> m = numpy.zeros(shape=(9,9))
3

你可能会想用一个列表来处理这个问题。

如果你真的想保持现在的做法,你可以这样做:

a1 = a2 = a3 ... = i9 = 0

或者为了节省一些书写空间

#(0,)*81 is the same thing as writing 0, 0, ..., 0
a1, a2, a3, ..., i9 = (0,)*81 

但我建议你使用一个列表的列表。

这里有一个列表推导式,它可以创建一个包含9个零的列表:

a = [0 for x in range(9)]

用这个思路来创建一个包含9个列表的列表推导式。

grid = [[0 for x in range(9)] for y in range(9)]

然后你可以这样访问这个网格:

>>> print grid[0][0]
>>> 0
>>> print grid[8][8]
>>> 0
>>> print grid
>>> [[0, 0, 0, 0, 0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0, 0, 0, 0, 0]]

撰写回答