- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
KenKen问题生成算法探究
KenKen问题生成算法探究摘要:KenKen是一种类似于数独的数字游戏,是数独游戏与数学运算规则的巧妙结合。它既能像数独游戏那样锻炼人的逻辑思维能力,又能同时训练人的数学运算能力。该文针对KenKen问题提出了一种高效、可行的生成算法,该算法包括三个部分的内容:基于矩阵的初等变换生成满足KenKen规则的解矩阵、运用改进的合并算法生成“盒子”和随机生成“提示”。可基于该算法开发成型的软件产品,用于启蒙、教学、娱乐。
关键词:KenKen;游戏;算法
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2013)04-0811-04
Study on the Generation Algorithm of KenKen Problem
TU Yang-yang
(Wuhan University of Science and Technology City College,Wuhan 430083,China)
Abstract: KenKen, a digital game similar to Sudoku, is the ingenious combination between Sudoku game and math rules. It not only can train a person’s logical thinking ability like Sudoku games, but also can train their mathematical ability. In this paper, an efficient and feasible generation algorithm of KenKen problem has been put forward. This algorithm consists of three parts: generate solution matrix abide by KenKen rules based on elementary transformation of matrix, generate “Box” by improved merging algorithm and generate “Prompt” randomly. Software products can be developed based on this algorithm for enlighten, teaching and entertainment.
Key words: KenKen; game; algorithm
KenKen(又名聪明方格、算独、Kendoku),一种类似于数独的数字益智游戏,由日本东京一位名叫宫本哲也的老师为帮助儿童学习算数而发明[1]。它的规则是:给出N×N的方格,用1到N这些数字填入其中,每一行每一列都不能有重复的数字。方格中的黑色粗线框出若干个限定框,称为“盒子”,每个盒子中数字的和、差、积或商会标注在盒子的左上角,称为“提示”[2]。例如提示是“6×”,则说明该盒子中的数字之积为6;提示是“2÷”,则说明该盒子中的大数除以小数的商为2;提示是“1”,则说明该盒子中的数为1,如图1所示。
本文试图对KenKen问题进行分析,设计算法,达到实现利用计算机程序自动生成KenKen问题的目的。
1 算法整体分析
通过观察不难发现,KenKen问题,是由若干个盒子和与之对应的提示两个大的部分所构成的。同时,提示又是根据其所在盒子内的数字的计算结果而确定的,也就是说先得有数据,才能根据数据计算出提示。由此可以得出结论,要生成一个KenKen问题,算法必须要完成以下三个步骤的内容:
1)生成一个满足KenKen规则的解矩阵,作为提示的数据来源。矩阵为N阶方阵,且每一行每一列均为1到N,N个互不相同的数字。
2)生成盒子。即对矩阵进行划分,将矩阵随机划分为若干个连续的小区域。
3)生成提示。根据每个盒子内数字的数量与内容,随机产生运算符号并计算运算结果,从而得到提示的内容。
2 算法详细设计
2.1生成满足KenKen规则的解矩阵
生成一个满足KenKen规则的解矩阵,即对N阶方阵赋值,使其每一行每一列均为1到N,N个互不相同的数。一个可行的办法是使用拉斯维加斯算法[3],即在N阶方阵中随机填入1到N,N个数,然后不断地基于KenKen规则对其进行求解,直到解出为止。其中,求解过程又可使用多种算法,例如比较排除法[4]、图搜索策略法[5]、回溯法[6]、遗传算法[7]等。
上述算法虽然可行,但多存在效率问题。KenKen问题虽与数独问题类似
文档评论(0)