欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

数独游戏的 Python 实现 - 2 种方法

最编程 2024-06-01 20:09:47
...
  1. 每行,列,对角线的和相等,那么和一定为15。

  2. 这里使用itertools模块中的product()方法避免多次调用for循环,提高代码可读性与效率

  3. 找出所有三个数和为15的组合。

  4. 再上一步的基础上,找出使每行、每列、对角线和相等的所有组合。

通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。

代码清单 1

from itertools import product
lst = range(1,10)
arr = []
for n1,n2,n3 in product(lst,lst,lst):
if n1+n2+n3 == 15 and len({n1,n2,n3})==3:
arr.append([n1,n2,,n3])
print(arr)
from itertools import product
for a, b, C in product(arr,arr,arr):
if len(set(a+b+c))==9:
sum1 = a[0]+b[0]+0q0]#第一列求和
sum2 = a[1]+b[1]+c[1]#第二列求和
sum3 = a[2]+b[2]+c[2]#第三列求和
sum4 = a[0]+b[1]+c[2]#对角线求和
sum5 = a[2]+b[1]+c[0]#对角线求和
if sum1 == sum2 == sum3== sum4 == sum5:
print(a,end ='\t')
print(b,end ='\t')
print(c,end ='\t')

推荐阅读