目录
【题目】列出如下数独问题的2种数学模型,分析两种模型的优缺点,并用Excel求解,将结果填上。这里用Python进行求解:
【题目】列出如下数独问题的2种数学模型,分析两种模型的优缺点,并用Excel求解,将结果填上。这里用Python进行求解:
一、代码 model1 :
""" 数独是 9 横 9 竖共有 81 个格子,同时又分为 9 个九宫格。
我们填写数独的顺序是将 9 个九宫格按照从左到右,从上到下
的顺序排列,再将每个九宫格内部的空白格按照从左到右,从
上到下的顺序排列,依次按照顺序填写空白格。"""
""" 解此种数独用达不到默认递归的深度
import sys
sys.setrecursionlimit(100000) # 发现python默认的递归深度是很有限的
#(默认是1000),因此当递归深度超过999的
# 样子,就会引发这样的一个异常。
"""
import numpy as np
import time
time1 = time.time()
def get_next(m :"数独矩阵", x :"空白格行数", y :"空白格列数"):
""" 功能:获得下一个空白格在数独中的坐标。
"""
for next_y in range( y +1, 4): # 下一个空白格和当前格在一行的情况
if m[x][next_y] == 0:
return x, next_y
for next_x in range( x +1, 4): # 下一个空白格和当前格不在一行的情况
for next_y in range(0, 4):
if m[next_x][next_y] == 0:
return next_x,