希望大家给于指点和提示!
谢谢!
联系方式:[email protected]我现在在写一个游戏sudoku
游戏规则:
「数独」(sudoku)来自日文,但概念源自「拉丁方块」,是十八世纪瑞士数学家欧拉发明的。游戏规则很简单,九个九宫格里,每一直行与每一横列都有1到9的数字,每个小九宫格里也有1到9的数字,但一个数字在每个行列及每个小九宫格里都只能出现一次。谜题会填上若干数字,其它宫位留白,玩家得自行依逻辑推敲出剩下的空格里是什么数字。
本来整个程序都已经些完了,但是在最后的时候发现一个问题:不能保证我给出的题目,最后只有唯一的一个解。 sudoku用c实现,主要是算法利用递归。程序随机的得到一个完整的sudoku,然后在再这个sudoku上
将某些位置的数字清除,而形成一个sudoku题目。 难度控制是由2个条件组合来控制的:
a:空格可以添入的数的个数(即空格的自由度)
b:空的格子的总个数 我这样出题目不能保证,最后的解是唯一的,于是开始去解决这个问题。在解决这个问题的途中,发现网络上
的sudoku游戏的题目都有一个规则(显示数字图形都有某种对称关系,通过旋转都可以得到),他的难度我也
不知道是根据什么而得来的?可以肯定的是和我的难度控制不一样。
为了找一个理论根据,查过<<组合数学>>里面关于棋盘多项式和拉丁方阵的介绍,但都还没有找到好的方案。 现在的这个问题(难度控制和唯一性)确实很辣手,望您给予指点和帮助!
期待着您的回复!谢谢!
谢谢!
联系方式:[email protected]我现在在写一个游戏sudoku
游戏规则:
「数独」(sudoku)来自日文,但概念源自「拉丁方块」,是十八世纪瑞士数学家欧拉发明的。游戏规则很简单,九个九宫格里,每一直行与每一横列都有1到9的数字,每个小九宫格里也有1到9的数字,但一个数字在每个行列及每个小九宫格里都只能出现一次。谜题会填上若干数字,其它宫位留白,玩家得自行依逻辑推敲出剩下的空格里是什么数字。
本来整个程序都已经些完了,但是在最后的时候发现一个问题:不能保证我给出的题目,最后只有唯一的一个解。 sudoku用c实现,主要是算法利用递归。程序随机的得到一个完整的sudoku,然后在再这个sudoku上
将某些位置的数字清除,而形成一个sudoku题目。 难度控制是由2个条件组合来控制的:
a:空格可以添入的数的个数(即空格的自由度)
b:空的格子的总个数 我这样出题目不能保证,最后的解是唯一的,于是开始去解决这个问题。在解决这个问题的途中,发现网络上
的sudoku游戏的题目都有一个规则(显示数字图形都有某种对称关系,通过旋转都可以得到),他的难度我也
不知道是根据什么而得来的?可以肯定的是和我的难度控制不一样。
为了找一个理论根据,查过<<组合数学>>里面关于棋盘多项式和拉丁方阵的介绍,但都还没有找到好的方案。 现在的这个问题(难度控制和唯一性)确实很辣手,望您给予指点和帮助!
期待着您的回复!谢谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货