用python做的。
#考虑四个角数字a,b,c,d,显然max(a,b,c,d)<=7(如果某个数字是8的话,那么它所在的两边另两数和为4,只有1+3和2+2两种可能,显然2+2不符合题意)
#考虑去重及旋转,abcd只有三种排序方式是不相重的:abcd,abdc,acbd(即对角两数分别是ab,ac,ad三种情况)
import itertools
for x in itertools.combinations(range(1,8),4): #1--7取4数组合
for (a,b,c,d) in [(x[0],x[1],x[2],x[3]),(x[0],x[1],x[3],x[2]),(x[0],x[3],x[1],x[2])]: #每种组合对应三种情况
if len(set([a,12-a-b,b,12-b-c,c,12-c-d,d,12-d-a]))==8 and max([a+b,b+c,c+d,d+a])<12:
print('%d-%d-%d %d-%d-%d %d-%d-%d %d-%d-%d'%(a,12-a-b,b,b,12-b-c,c,c,12-c-d,d,d,12-d-a,a))
|