Python编写九宫格程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)
#输出结果