6个步骤教你用Python解数独!(含实例代码) - Go语言中文社区

6个步骤教你用Python解数独!(含实例代码)


前言:

今天为大家带来的内容是:6个步骤教你用Python解数独!(含实例代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,喜欢本文内容的话记得点赞转发收藏不迷路哦!!!

芬兰数学家因卡拉花费3个月时间设计出的世界上迄今难度最大的数独。数独是 9 横 9 竖共有 81 个格子,同时又分为 9 个九宫格。规则很简单:每个空格填入 1~9 任意一个数字,需要保证每个横排和竖排以及九宫格内无相同数字。

12192974-d813e1e9df20ade1
6个步骤教你用Python解数独!(含实例代码)

解数独是一个可有可无的爱好,知道这个益智游戏,但是不很上心。但是前两天,由于自己的学生装了一个 ubuntu 18.04 的系统,上面有一些数独游戏,偶然间,让我看见了,为了更好的显摆自己的 Python 知识,决定用 Python 写一个程序,所以就有了下面的文字。

1、将待解的数独转换成 Python 矩阵

12192974-e85b6b49ee92dbae
6个步骤教你用Python解数独!(含实例代码)

就是这么简单,将待填写的空白格用 0 来代替。

2、寻找第一个空格位置

12192974-c89ca4aeabc62915
6个步骤教你用Python解数独!(含实例代码)

找到 Python 矩阵中第一个是 0 的元素的位置坐标。

3、寻找下一个空格位置

12192974-82bf53bedc362ec6
6个步骤教你用Python解数独!(含实例代码)

找到 Python 矩阵中下一个是 0 的元素的位置坐标。详细内容看注释。

4、寻找适合当前空格的数字的集合

12192974-3d7f3c7edf664663
6个步骤教你用Python解数独!(含实例代码)

每个空格可以填入 1~9 中的任意一个数字,但要符合规则:每个空格填入 1~9 任意一个数字,需要保证每个横排和竖排以及九宫格内无相同数字。下面的代码中的 grid 变量,保存的是当前位置所处的九宫格。v 变量是通过集合运算,将 1~9 这个数字集合中,与行的数字集合、列的数字集合以及九宫格的数字集合重叠的部分去除掉。剩余的部分就是符合条件的数字的集合。

5、使用递归尝试解数独(Sudoku)

12192974-7109d4f930ed9dcd
6个步骤教你用Python解数独!(含实例代码)

详细内容看注释。

6、代码展示

12192974-a3a8034437edd4df
6个步骤教你用Python解数独!(含实例代码)
12192974-2ba641a3a4c014da
6个步骤教你用Python解数独!(含实例代码)
12192974-9ca603f67fbfc633
6个步骤教你用Python解数独!(含实例代码)

以上就是本文的全部内容,希望对大家的学习有所帮助!!!

python程序员交流群:877562786(群里含大量学习资料,面试宝典等)

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_41334453/article/details/102805525
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 18:29:43
  • 阅读 ( 1092 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢