【Numpy】用Python求解数独

目录

【题目】列出如下数独问题的2种数学模型,分析两种模型的优缺点,并用Excel求解,将结果填上。这里用Python进行求解:

一、代码 model1 

二、代码 model2

三、求解结果


【题目】列出如下数独问题的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,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小怪的碗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值