网站大量收购独家精品文档,联系QQ:2885784924

数独问题.docVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数独问题.doc

教学实践报告 实习内容: 数学建模实践 题目:数独问题 学生姓名 专 业 数学与应用数学 1123601 学 号 201120360114 201120360117 指导教师 许志军老师 2013年6月20日 数独问题 摘要 本文主要研究数独问题,通过Lingo和Matlab编程实现对芬兰数学家设计出最难数独的求解及分析,画出图形并推广及一般数独问题,同时设计出不同难度的数独。 对于问题一,我们建立整数规划模型,采用三维0-1 变量的方法,利用Lingo编程求解,最终得到的结果如表1所示。 对于问题二,我们使用的是穷举搜索法,通过建立一堆栈,将所有的候选数字填入栈中,利用搜索匹配得到最终解。得到的结果如表1所示。 对于问题三,对该数独进行画图并求解,我们利用Matlab的画图功能,一横一竖将此9×9九宫格画出来并填入数字,得到结果。 对于问题四,设计十个唯一解的数独问题,我们采用挖洞法将设定好的数独随机挖去几个数,得到一个新的数独。 8 1 2 7 5 3 6 4 9 9 4 3 6 8 2 1 7 5 6 7 5 4 9 1 2 8 3 1 5 4 2 3 7 8 9 6 3 6 9 8 4 5 7 2 1 2 8 7 1 6 9 5 3 4 5 2 1 9 7 4 3 6 8 4 3 8 5 2 6 9 1 7 7 9 6 3 1 8 4 5 2 表1:数独问题的解 关键词:整数规划 Lingo编程 穷举法 Matlab画图 挖洞法 问题的重述 问题的提出 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。 每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无解或多解的题目都是不合格的。 芬兰一位数学家号称设计出全球最难的“数独游戏”,并刊登在报纸上,让大家去挑战。该数独图形如下: 据介绍,目前,数独游戏的难度的等级有一道五级,一是入门等级,五则比较难。不过这位数学家说,他所设计的数独游戏难度等级是十一,可以说是所以数独游戏中,难度最高的等级 他还表示,他目前还没遇到解不出来的数独游戏,因此他认为“最具挑战性”的数独游戏并没有出现。 具体问题 根据以上描述,试完成以下问题: 问题一: 建立数独的规划模型并给出Lingo求解; 问题二: 用matlab进行穷举搜索法求解数独; 问题三: 利用matlab画出此数独的图形及解答; 问题四: 利用matlab软件出10道相对较难的数独题并给出参考答案(有唯一答案的题)。 模型的假设 1、本题数独初盘不存在任何数据错误。 2、该数独问题存在唯一解。 符号说明 表示数k是否填入数独方中的(i,j)处 表示往空格处填入0后数独方中(i,j)处的数 表示经过求解后数独方中(i,j)处的数 模型的建立与求解 2.1问题一 4.1.1问题的分析 问题一中需要用Lingo编程解决数独问题,我们选择了对九宫数独建立整数规划模型进行程序设计。并且利用@floor(x)能够返回x的整数部分。为了加快求解速度和在已知条件不充分也能够求解,在程序中增加min=@sum(link:x),进行调试并得出结果。 4.1.2模型的建立 引进三维变量,令 1 表示数k填入 n 阶数独方矩阵的(i,j)处 = 0 表示数k不填入(i,j)处 通过对数独这个问题的分析可以得到如下约束条件: (1)每一(i,j)处只能填一个数 k; (2)第i 行只有一个 k; (3)第j 列只有一个 k; (4)第一个区只有一个k; 由上述分析可建立该9阶数独方的整数规划模型如下: 注: (7)式表示数独方中每一(i,j)处只能填入一个数k; (8)式表示每一行只能有一个数k; (9)式表示每一列只能有一个数k; (10)式表示每一个区内只能有一个数k; (11)式表示只能取0或1; (12)上所有式中 4.1.3模型的求解 要想求解问题中给出的数独问题,首先可将题目中的所有空格处填入同一常数a,不妨取 a=0,如表2所示。记 是表3中(i,j)处的数,是数独求解后(i,j)处的数,是三维的0和1 变量 表2 往空格填入0后的数独方 8 0 0 0 0 0 0 0 0 0 0 3 6 0 0 0 0 0 0 7 0 0 9 0 2 0 0 0 5 0 0 0 7 0 0 0 0 0 0 0 4 5 7 0 0 0 0 0 1 0 0 0 3 0 0 0 1 0 0 0 0 6 8 0 0 8 5 0 0 0 1 0

文档评论(0)

zhuwo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档