数独生成算法设计
来源:互联网 发布:淘宝卖家的钱在哪儿看 编辑:程序博客网 时间:2024/04/30 22:22
- 问题提出
- 设计思路
- 整体设计
- 局部推演
- 宫局部推演
- 行局部推演
- 列局部推演
- 单个数字
- 随机数推演
问题提出
数独,就是在一个大的九宫格的每一个宫中嵌套一个小的九宫格,每个九宫格或每一行或每一列的九个格子是由1-9这九个不重复的数字组成的。
数学描述:对任意数字 n,n 属于集合{1,2,3,4,5,6,7,8,9},在九宫格的每一宫、九宫格的每一行和九宫格的每一列具有唯一性。
那么如何生成这样一个九宫格?
设计思路
有三种思路,一种是从整体来看,一种是从局部推演,一种是从单个数字入手
整体设计
每个宫内的数字排列有 9! 种形式,每行数字排列有 9! 种形式,每列数字排列有 9! 种形式。
现在设计一个起始值,即一个起始情况,然后根据这个起始情况找到排列规律进行变换,得到不同的数独棋盘。
局部推演
宫局部推演
设计第一个宫,然后设计第二个宫,将所有的宫进行匹配比对,将符合的宫序列组合保存,即为一种数独棋盘。
行局部推演
与宫类似,不过现在是改成每一行,但是要注意行所涉及的宫内的数字要完整且不重复。
列局部推演
同行局部推演
单个数字
每个数字在棋盘上的位置提前固定好,即每个数字满足:必在某一宫,必在某一行,必在某一列,宫行列不重复,可以参考 n 皇后算法,但是比 n 皇后的限制要少一些
随机数推演
设计的过程就是求解的过程,先用随机数按规律生成部分数字的位置,达到一定程度后推算是否能够组成完整数独矩阵。
CSDN 辣鸡 MD 编辑器,无序列表格式全丢¡
阅读全文
0 0
- 数独生成算法设计
- 数独生成算法
- 数独生成算法
- 数独生成算法实现
- 数独-- 一个高效率生成数独的算法
- 数独游戏的生成算法
- java数独生成算法(递归)
- 数独随机生成
- 求:数独的 生成 算法 Java代码
- 数独的生成和破解算法分析
- 数独的生成与破解算法分析
- 数独求解算法
- 数独算法
- 数独算法求解
- 数独算法
- 数独算法
- 数独算法
- 数独求解算法
- cf419 (div2)3/5
- Android送花动画
- 题目,关于: typedef int (* func)(int ,int )
- 【机器学习算法模型】分类算法——贝叶斯网络
- 软件工程(C编码实践)学习总结
- 数独生成算法设计
- 手持式RFID终端机工作原理及应用行业
- Python3爬虫简单样例
- linux的基础知识
- Joseph
- 安卓开发入门之图片缩放
- 今天开通博客啦!
- 数独生成算法实现
- MySQL索引与优化