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问题虽与数独问题类似,但是在规则上有所不同。不同之处在于:数独问题不仅要求每行每列上的数字不能重复,还要求在每个小的3×3的宫格内不能重复[8];而KenKen问题只要求每行每列的数字不能重复。可以此为突破口,寻求更简单、更高效的算法来生成满足KenKen规则的解矩阵。通过观察,发现进行矩阵的初等变换,即任意交换KenKen解矩阵的两行或者两列后[9],得到的新矩阵依然满足KenKen规则。如***2所示为一个满足KenKen规则的4阶解矩阵,矩阵每行每列无重复数字。交换***2的第一行和第三行得到***3,交换***3的第二列和第四列得到***4。经过交换后的***3和***4所示的矩阵依然为满足KenKen规则的解矩阵。

由此得出结论,可以使用基于矩阵初等变换的算法来生成满足KenKen规则的解矩阵,即可行,又具有较高的效率。具体做法是:首先生成一个固定的有规律的初始解矩阵(如***5所示),然后对其进行一定次数的随机行变换和列变换,从而得到最终结果。例如对***5所示的初始解矩阵进行五次初等变换:依次交换第三、四列,第二、四行,第二、三列,第一、二行和第一、三行后,得到一个满足KenKen规则的解矩阵(如***6所示)。

此算法在实际操作的过程中存在一个可商榷的问题,即随机初等变换的次数应该如何确定。可想而知,如果初等变换次数过少,那么初始的解矩阵会产生打乱不充分的现象;如果初等变换次数过多,则会影响效率且不能确保打乱效果。在此,提出两点建议:1)通过对初等变换次数进行大量的尝试和调整,发现当变换次数大于10次时,有着较好的打乱效果;2)如果想确保打乱效果,可以考虑在初等变换的过程中设置一个打乱效果评价指标,直到满足该指标时停止变换。

2.2 生成盒子

随机生成盒子,即将N阶方阵为随即划分为若干个连续的区域,每个区域包含一定数量的方格。首先考虑到一个可行的算法:生成一个划分方案,例如{4,3,3,2,2,1,1},表示拟将方阵划分为7个盒子,每个盒子包含的方格数量分别为4,3,3,2,2,1,1。然后按照此方案,随机在方阵中依次划分出这7个盒子,若碰到无法划分下去的情况则回溯。这种算法对盒子数量和其包含的方格数量要求非常严格,由于回溯机制,使得算法存在效率上面的问题,并且划分方案的生成也需要专门的算法设计。另外一个可行的算法是采取合并法,即从第一个方格1开始向下或向右试探其相邻的方格2,若方格2不在盒子中就和方格1合并生成新的盒子,反之将方格1合并到方格2所在的盒子中[10]。这种算法不存在回溯,执行效率较高,但是也存在一些问题。可想而知,划分结束后,方阵内的盒子包含的方格数量只可能为3,2或者1,不可能出现包含方格数量为3以上的盒子。同时只包含一个方格的盒子只可能在方阵底端出现且机率偏小。这样一来会使KenKen问题显得过分单调。

综合分析,考虑将合并算法进行改进,采取改进的合并算法对方阵进行划分,随机生成盒子。为方便表述,用1到16依次对方阵逐行逐列进行编号(如***7)。下面以4阶方阵为例说明算法思路:

1)给出两个限定条件:1)生成的所有盒子中,包含方格数量的最大值不能超过P。2)生成的所有盒子中有且只有Q个只包含一个方格的盒子。这两个条件的作用是为了规避合并算法的缺陷,为后期调整盒子提供依据。P值和Q值的确定是一个需要注意的问题:P值如果设置得过大,会使KenKen问题的难度过大,以致失去游戏性;而Q值设置得过大,会导致KenKen问题的难度过小,亦会影响到游戏性。对于四阶的KenKen问题,我们不妨将P设为4,将Q设为2。

2)利用合并算法对方阵进行初步划分,过程如表1所示,划分结果如***8所示。

3)结合给出的两个限定条件,对初步划分结果进行调整。调整的算法为首先检测两个限定条件是否成立,如果成立则退出调整;如果不成立分三种情况处理:1)只有P不成立,将不成立的盒子划出一部分与相邻盒子合并,使得剩下的盒子满足P;2)只有Q不成立,随机寻找一个包含方格最少的盒子,保留一个方格单独成为一个盒子,将其余部分与相邻盒子进行合并;3)P和Q同时不成立,调整办法与2相同。为提高效率,可在调整的时候做一个预判,检测此次调整是否会将不满足一个限定条件的情况变为两个条件都不满足的情况。针对***8所示的初步划分结果,通过调整算法,将方格15并入了方格14所在的盒子,将方格12并入了方格8所在的盒子。去掉方格编号后,结果如***9所示。

2.3 生成提示

生成提示需要算法做的事情,就是为方阵中的每个盒子随机生成一个四则运算符号,并利用运算符号对盒子中的数字进行运算,进而根据运算符号和运算结果生成该盒子的相应提示。具体到为某一个特定的盒子生成提示的时候,算法需要分三种情况来处理:

1)如果某一个盒子包含的方格数量大于2,则只能在“+”和“×”两种运算符号中随机生成一种。然后对盒子中的数字进行连加或连乘的运算,并根据运算结果生成该盒子的提示。

2)如果某一个盒子包含的方格数量为2,则可在“+”、“-”、“×”和“÷”四种运算符号中随机生成一种。并对盒子中的数字进行运算,进而生成该盒子的提示。这里注意两个问题:1)在进行减法和除法运算的时候需要将较大的那一个数调整到运算符号的左边,避免在运算结果中出现负数或零的情况。2)如果存在大数除以小数不能整除的情况,则只能考虑在“+”、“-”和“×”三种运算符号中随机生成一种进行运算。

3)如果某一个盒子仅包含一个方格,则不用生成运算符号,直接将方格中的数字作为提示生成。

将***6中满足KenKen规则的解矩阵填入***9的盒子中,对其按照算法生成提示(如***10所示),再将盒子中的数字去掉,便生成了一个KenKen问题(如***11所示)。

3 结束语

KenKen是数独游戏与数学运算规则的巧妙结合,不仅更加有趣好玩,同时也能寓教于乐。该文通过三个部分:基于矩阵的初等变换生成满足KenKen规则的解矩阵、运用改进的合并算法生成盒子和随机生成提示,提出了KenKen问题的高效、可行的生成算法。在经济文化日益发展的今天,人们的生活水平得到了很大的提高。生活在钢筋混凝土大都市里的人群,每天都要面对各种各样的生活压力[11]。基于本算法开发出成型的软件产品,可以缓解人们的压力,放松大脑,提供最好的思维锻炼。同时可用于启蒙、教学,对孩子熟悉四则运算,提高逻辑推理能力,激发对数学的热爱起到潜移默化的积极推动作用。

参考文献:

[1] 覃琛琛. KenKen:A New Sudoku Puzzle新数独游戏[J].数学教学通讯:数学金刊,2009(6).

[2] 王瑞霖,张惠英.用KenKen游戏提高学生逻辑运算能力与逻辑思维能力[J].教育实践与研究:中学版(B),2012(4).

[3] 薛源海,蒋彪彬,李永卓.基于“挖洞”思想的数独游戏生成算法[J].数学的实践与认识,2009(21).

[4] 易珺,朱静文,曹东.数独求解算法的设计与实现[J].科学技术与工程,2010(27).

[5] 李昊.基于***搜索策略的数独问题算法与实现[J]. 通化师范学院学报,2009(10).

[6] 李盘荣.数独游戏的算法研究与实现[J].电脑知识与技术,2008(26).

[7] 黎永达,邓秀勤.基于改进的遗传算法的数独谜题求解[J].计算机应用与软件,2011(3).

[8] 刘晓宝.数独游戏的解题算法[J].电脑编程技巧与维护,2007(5).

[9] 陈祥云.矩阵的初等变换及其应用[J].高等函授学报:自然科学版,2012(2).

[10] 金伟,谭劲.一种数字迷宫游戏程序设计[J].计算机时代,2012(7).

[11] 郭东恩,吴刚.基于Android平台的数独游戏设计与实现[J].计算机与数字工程,2012(3).

转载请注明出处学文网 » KenKen问题的生成算法研究

学习

怎样帮助爱捣蛋的孩子

阅读(22)

两种捣蛋孩子伟伟是个小男孩,短短的头发,上面还有俩小发旋,眼睛不大,却时时让你感到他的存在。小李老师记得,开学第一天,伟伟是由妈妈送到幼儿园来的,但是伟伟妈妈并没有像其他孩子的妈妈那样围着老师,向老师述说孩子的情况,兼带比较婉转地向老师

学习

假如我是男生作文500字

阅读(27)

我是一个女生,虽然得到父母的宠爱,但我常常想:如果我是一名男生该多好啊!男生力气大,不容易被人欺负,帮助妈妈提水,扫地,拖地,拿重东西,轻而易举。有时我看见妈妈忙这忙那,便走上前去对妈妈说:“妈妈,看您满头大汗的,我来帮您吧!”妈妈笑了笑,和蔼的地说

学习

中国著名休闲城市

阅读(25)

东方休闲之都――杭州西子湖畔,郁郁葱葱的绿林之中掩映着一些极具特色的茶座、咖啡厅和酒吧。晴朗的日子,人们可以三五成群地在湖边漫步,感受垂柳拂面的清新。欣赏波光潋滟的美景。若是雨天,雨雾笼罩的西湖更具特色,在湖边的小屋品茶聊天也变

学习

色与形的碰撞

阅读(21)

【摘要】本文通过中班美术活动《扎染畅想》案例,撷取几个活动片段:欣赏、看一看、变一变、想一想、画一画、互相交流欣赏等,进行反思。从幼儿发展的角度考虑活动的价值与内容,为幼儿提供适宜的、能自由创造和表现的平台,引导幼儿从无意识地探

学习

14岁那年的袭胸事件

阅读(21)

读完安旭的信,长期以来压在我胸口的沉重忽然卸去了,自信、快乐又回来了,我像一朵花儿尽情把美丽舒展开来,不再将胸脯束得平平。>>十四岁那年的偷窥事件11岁那年的夏天13岁那年的遗憾13岁那年的树莓14岁的我寂寞的14岁14岁的夏天78岁的逆袭十

学习

成人教育中移动学习的研究

阅读(28)

移动通信技术的发展及3c技术的推进带来了移动学习的可能,而一些学习理论和技术支撑使得移动学习应用于成人教育成为可能。本文在分析移动学习特点的基础上,进一步研究了移动学习在成人教育中的可行性、适应性及其出实施方式和意义。关键词

学习

杂合:翻译的结果

阅读(23)

【摘要】翻译的本质在于不同语言文化的交流,要达到交流的目的就必须考虑译文的可读性,这就导致了翻译的杂合性。本文将结合韦努蒂的翻译主张和语言文化的异质性论述杂合是翻译的结果,是处于归化、异化之间的第三种状态。【关键词】杂合;翻译

学习

CNGI分布式娱乐平台构建方案

阅读(31)

CNGI(中国下一代互联网)网络基础建设成果得到肯定的同时,还应更加关注应用项目的推进与商用。CNGI分布式影音娱乐平台就是一个应用实验专项。今年6月,在“中国下一代互联网示范工程技术论坛”上,CNGI所有项目首次集体亮相,这是自2003年CNGI项

学习

脑海深处的农村公共食堂

阅读(22)

年近古稀的我,梦中时常浮现出那个特殊年代大办农村公共食堂的情景,仿佛就在眼前。在1958年掀起的“”和化运动中,我们全家5口都成了光荣的社员。秋季,我们生产队开天辟地办起了两个能供百余人吃饭的公共食堂。饭堂里整齐摆放着从各家各户收

学习

与上司和谐相处

阅读(25)

与上司争论的技巧职场中人,在工作中与上司有争论是不可避免的,特别是一些大的、原则性的问题上。争论的结果,可使事情得到正确解决,对事业、对上司都有益处。但即使是开明的上司也很注重自己的权威,希望得到下属的尊重。所以当你与上司争论时

学习

导热油在太阳能中高温热利用中的研究现状

阅读(19)

通过对于导热油的分类、性质和选择油方式要求研究,对导热油换热性能进行系统设计和安全运行管理,同时做好对导热油强化研究。本文通过对于负荷抛物面聚光器、抛物面槽式集热器和菲涅尔聚光器三种高温太阳能集热器研究,对于导热油系统应用综

学习

桥梁结构施工方法解析

阅读(25)

本文为您介绍桥梁结构施工方法解析,内容包括桥梁下部结构施工方案,桥梁上部结构施工动画。【摘要】桥梁工程是交通建设的重要组成部分,其施工质量不仅关系到我国交通事业的发展,更重要的是影响着人们的行车安全。本文主要探讨桥梁结构及主

学习

配电网合环分析与合环条件判断

阅读(28)

【摘要】配电网合环操作可以大幅提高供电可靠性,分析配电网合环的条件,全面归纳出三种典型接线方式变电站低压侧10kV配电网合环计算模型,总结出配电网合环的稳态、暂态计算方法,形成配电网合环的技术原则,对配电网合环具有指导作用。【关键词

学习

语文知识检测题100题

阅读(28)

一、选择题1.“譬如”的“譬”的正确读音是()A.bīB.bìC.pǐD.pì2.下列与“炙”字造字法相同的一项是()A.左B.怒C.星D.山3.下列与“凹”字笔画相同的一项是()A.弗B.夷C.条D.穷4.下列错别字最多的一项是()A.瞻养欠收签字盖戳再接再励B.

学习

成人教育中移动学习的研究

阅读(28)

移动通信技术的发展及3c技术的推进带来了移动学习的可能,而一些学习理论和技术支撑使得移动学习应用于成人教育成为可能。本文在分析移动学习特点的基础上,进一步研究了移动学习在成人教育中的可行性、适应性及其出实施方式和意义。关键词

学习

LED芯片及封装技术研究

阅读(23)

本文介绍了大功率LED封装结构和散热封装材料技术的发展历程,重点对几种陶瓷封装基板进行了研究,研究了陶瓷基板基板工作时温度、光效和电流的关系,并与铝基覆铜板作为封装基板时进行了比较。LED已经在照明及平板显示背光市场有着广泛的应用

学习

高职院校学前教育专业毕业设计研究

阅读(25)

在全实践教学改革的引领下,针对毕业设计的改革和创新,我校以校级课题的形式组织专门的教研团队进行研讨和论证。本文的从“理”到“实”,亦指学前教育专业的毕业设计应摒弃传统的重理论、轻实践的导向,在保证学生的理论知识“必须、够用”的

学习

染色珍珠检测分析研究

阅读(26)

珠宝市场上,染色珍珠、辐照处理珍珠等各式处理珍珠很容易与天然的珍珠相混淆,本文通过拉曼光谱等测试手段对珍珠进行检测分析研究,并就此获得更为准确而直接的鉴定特征,提高珍珠的鉴定成功率,为后期质监站珍珠检测工作的进展起到一定的推动作

学习

和胃散急性毒性实验研究

阅读(19)

[摘要]目的:观察和胃散的急性毒性反应。方法:和胃散以最大浓度及最大给药体积的药液灌胃(培)给药,3次,d。连续观察7d,记录小鼠毒副作用情况。结果:观察7d后,全部动物健存,小鼠体重平均增长24.82%,未见任何毒性作用。计算得和胃散最大给药量为54.0

学习

对空间经济计量学模型研究

阅读(23)

本文为您介绍对空间经济计量学模型研究,内容包括计量经济学模式研究,计量经济学实证研究思路。1974年5月2日J.Paelinck在荷兰统计协会年会(Tilburg,蒂尔堡)大会致词时提出“空间经济计量学”(SpatialEconometrics)的名词,关于空间经济计

学习

侵权法中的注意义务研究

阅读(28)

我国于2009年12月26日通过了《中华人民共和国侵权责任法》且自2010年7月1日起施行。经过几番讨论、诸多协商予以制定说明我国对侵权法的重视。通过该法我发现贯穿该法的诸多词汇中有一个十分特别和突出,这就是“义务”;里面介绍了安全保障

学习

基于NSGA2算法的并行机多目标调度问题研究

阅读(19)

针对并行机多目标调度问题,以完工时间和总延迟时间最小为目标函数建立了数学模型,从而将具有解决复杂组合优化问题的非劣排序遗传算法NSGA2应用于求解多目标并行机调度问题。文中详细描述了用NSGA2算法求解并行机调度问题的步骤,并通过Matl