问题:1-9的数字,形成3*3的表格,每一列每一行斜着反斜着相加都相等。
import numpy as np
def conditionTest(arr):
number1=0
number2=0;
for i in range(0,3):
for j in range(0,3):
if(i==j):
number1+=arr[i,j]
if(i+j==3):
number2+=arr[i,j]
numberx=np.sum(arr,axis=0)
numbery=np.sum(arr,axis=1)
conditon1=False
if(number1==number2):
conditon1=True
condition2=True
for i in numberx:
for j in numbery:
if(i!=j):
condition2=False
if(number1==numberx[0]):
condition3=True
else:
condition3=False
if(conditon1 and condition2 and condition3):
return True
else:
return False
random_matrix=np.random.choice([1,2,3,4,5,6,7,8,9],9,replace=False)
random_matrix=random_matrix.reshape((3,3))
def conditionTest2(arr):
number1=arr[0,0]+arr[1,1]+arr[2,2]
number2=arr[0,2]+arr[1,1]+arr[2,0]
numberx=np.sum(arr,axis=0)
numbery=np.sum(arr,axis=1)
if((numberx==numbery).all() and numberx[0]==number1 and number1==number2 and numberx[0]==numberx[1]==numberx[2]):
return True
else:
return False
while(True):
if(conditionTest2(random_matrix)):
print(random_matrix)
break
else:
random_matrix=np.random.choice([1,2,3,4,5,6,7,8,9],9,replace=False)
random_matrix=random_matrix.reshape((3,3))