問題:
程式碼:
# -*- coding: utf-8 -*- import numpy as np listSoltuion = [] def rule_2_3_5(): for a2 in range(1, 10): for a3 in range(1, 10): if a2 != a3: for a5 in range(1, 10): if a5 != a2 and a5 != a3: if (a2 * a3 - a5) % 10 == 0: newNumList = [0] * 9 newNumList[1] = a2 newNumList[2] = a3 newNumList[4] = a5 rule_2_3_7_9(newNumList) def rule_2_3_7_9(newNumList): a2 = newNumList[1] a3 = newNumList[2] a5 = newNumList[4] for a7 in range(1, 10): if a7 not in newNumList: for a9 in range(1, 10): if a7 != a9 and a9 not in newNumList: if ((a2 * a3) + a7 - a9) % 10 == 0: newNumList[6] = a7 newNumList[8] = a9 rule_4(newNumList) def rule_4(newNumList): a2 = newNumList[1] a3 = newNumList[2] a5 = newNumList[4] a7 = newNumList[6] a9 = newNumList[8] for a1 in range(1, 10): if a1 not in newNumList: a4 = (a1 * a3) + ((a2 * a3 - a5) // 10) if a4 > 0 and a4 < 10 and a4 != a1 and (a4 not in newNumList): newNumList[0] = a1 newNumList[3] = a4 rule_8(newNumList) def rule_8(newNumList): a1 = newNumList[0] a2 = newNumList[1] a3 = newNumList[2] a4 = newNumList[3] a5 = newNumList[4] a7 = newNumList[6] a9 = newNumList[8] for a6 in range(1, 10): if a6 not in newNumList: a8 = a1 * a3 + a6 + ((a2 * a3 + a7 - a9) // 10) if a8 > 0 and a8 < 10 and a8 != a6 and (a8 not in newNumList): newNumList[5] = a6 newNumList[7] = a8 if (np.sum(newNumList)) == 45: listSoltuion.append(newNumList) rule_2_3_5() for solution in listSoltuion: print (solution)
解答:
[1, 7, 4, 6, 8, 2, 5, 9, 3]