我在HS总结中的伙伴给了我这种算法,我希望有人可以告诉我是否有一种更雄辩的编码方式。
CB是当前的董事会职位(全球),它是列表的列表。
for a in xrange(0, 3):
for b in xrange(0, 3):
for j in xrange(1, 4):
for k in xrange(1, 4):
boxsum += CB[3a + j][3b + k]
if not(boxsum == 45):
return False
boxsum = 0
最佳答案
首先,以下代码未正确缩进:
if not(boxsum == 45):
return False
boxsum = 0
(使用当前缩进,它将始终在第一次执行此代码时失败)
其次,在以下行中:
boxsum += CB[3a + j][3b + k]
您可能打算这样做:
boxsum += CB[3*a + j][3*b + k]
最后,为了检查数独游戏的3x3部分,仅检查
sum
是不够的-您还应该检查是否存在1-9之间的每个数字(换句话说,所有数字都位于范围1-9,并且没有数字出现超过一次)。关于python - (Python)在Sudoku中检查3x3,还有更好的方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24017092/