数独生成与求解
记得第一次写数独的算法的时候是在大学期间,那时候闲来无事;在手机上玩着数独游戏,看着自己解不出来的题,想着是不是折腾折腾数独,写出一个求解数独的算法出来。
想到就做,不过最终以失败告终,做到了何种程度已记不清了。
后来,用 c 实现了求解数独的算法;而最近,则是用 Python 重新实现了求解数独的算法并实现了数独生成的算法。
在这里,也是想着介绍我使用 Python 实现的数独求解和数独生成的算法。
数独求解 - sudoku_solving.py
首先说说此算法使用到的数独的机制:
【机制 1】单元格的候选数只有一个时,此单元格的值即为其候选数的值
【机制 2】单元格的其中一个候选数在此单元格所在行/列/3*3小矩阵中唯一时,则此候选数即可确定为此单元格的值
求解步骤:
分别以行/列/3*3小矩阵遍历数独中的所有单元格,根据单元格所在行/列/3*3小矩阵中其余单元格的值
2023-04-09 13:34:37
11KB
Python
1