用Python写一个自动解数独的小程序

本文介绍了使用Python编写一个自动解决简单数独问题的小程序。程序通过计算每个空格的可能值并逐步填充,实现了从输入数独到得出解的过程。目前程序仅适用于简单的数独,更复杂的数独解决方案有待进一步研究。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

跟朋友最近聊起来数独游戏,突发奇想使用python编写一个自动计算数独解的小程序。

数独的规则不再过多阐述,在此描述一下程序的主要思路:

(当前程序只针对于简单的数独,更复杂的还待深入挖掘) 

1.计算当前每个空格可能的取值集合,并将空格顺序值对应取值集合置于字典中;

2.对取值集合位数为1,即空格处为单一取值的进行赋值,(填入动作),重复1刷新字典直到字典为空位置;

当前实现如下:

 

1.将数独输入列表中,并定义函数count_candinate_number(j)根据数独规则计算每一个为0的位置的当前可能取值:

#编辑数独题目,将题目输入列表中
question = [6,0,7,0,0,0,9,0,3,
            0,0,8,0,0,7,0,0,0,
            3,0,0,0,8,2,0,7,5,
            0,1,2,3,0,5,0,0,0,
            0,0,6,0,0,0,5,0,0,
            0,0,0,4,0,6,7,1,0,
            2,6,0,7,4,0,0,0,8,
            0,0,0,8,0,0,6,0,0,
            7,0,5,0,0,0,1,0,9]

# print(question[0])

#返回当前数独为0的空格中所有可能取值
def count_candidate_number(j):
    exist_all_number = []       #当前横竖大方格内所有出现的数字集
    candidate_number = []       #该方格内所有的数字候选集
    SD_Row = int(j)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值