数独神经网络

时间:2014-04-29 20:18:17

标签: python neural-network sudoku

所以我正在尝试用Python创建一个Sudoku Board并让NN运行并学习解决它。但我在尝试将这些初始值设置为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 个答案:

答案 0 :(得分: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]]

答案 1 :(得分:1)

在Python中使用此类结构时,我绝对建议您查看numpy.matrix

你可以写

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