【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《Python编写九宫格程序》,欢迎阅读!
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) #输出结果
本文来源:https://www.wddqxz.cn/5cdd1e81ba4cf7ec4afe04a1b0717fd5370cb265.html