Python编写九宫格程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

importitertools

importnumpy as np

nums = [x for x in range(1,10)]

#把1到9这10个数组成的数组赋值给nums

sequence_3nums = [p for p in itertools.permutations(nums,3) if sum(p)==15]

#从nums中一次选出一个数赋值给p,最终得到sequence_3nums是一个1*3的数组,且满足三个数之和为15

for row1_1,row1_2,row1_3 in sequence_3nums:

#从sequence_3nums中选择一组赋值给row1_1,row1_2,row1_3

for row2_1,row2_2,row2_3 in sequence_3nums:

for row3_1,row3_2,row3_3 in sequence_3nums:

if row1_1+row2_1+row3_1==15 and row1_2+row2_2+row3_2==15 \

and row1_3+row2_3+row3_3==15 and row1_1+row2_2+row3_3==15 \

and row3_1+row2_2+row1_3==15 :

#筛选出每一行,每一列,对角线元素之和为15的矩阵

if len(set([row1_1,row1_2,row1_3])&set([row2_1,row2_2,row2_3]))==0 \

and

len(set([row1_1,row1_2,row1_3])&set([row3_1,row3_2,row3_3]))==0 \

and

len(set([row2_1,row2_2,row2_3])&set([row3_1,row3_2,row3_3]))==0: #筛选出每一个九宫格中的数字均不相同的矩阵

A=np.array([row1_1,row1_2,row1_3,row2_1,row2_2,row2_3,row3_1,row3_2,row3_3])

B=A.reshape(3,3)

#输出结果

相关文档
最新文档