c语言解数独程序.docxVIP

  • 6
  • 0
  • 约2.47千字
  • 约 5页
  • 2019-09-14 发布于广东
  • 举报
一緒论 本课题的内容是解数独,数独作为一种经典的数字类游戏,具有很强的逻辑性和趣味性, 效率高的解题方法对于程序算法的逻辑要求较高。而试填入法方法简单,只是操作繁琐,但 适合计算机进行。我们小组釆用的就是回溯法,利用栈和找出很明显的可唯一填入数使得运 算更快一些,普通计算机解最难的17位数独题目一般不会超过5秒钟。组内分工大致为: 程序主体一起完成,另外一人负责文件导入的部分,一人负责美化,两人负责找唯一可填入 数的部分。 数学模型 们采用的数独解决的方法是直接填入加上回溯法,而主要使用回溯法。对整个算法來说, 首先输入待求解的九宫格矩阵,空白位置用0表示。然后定义一个AlterArr二维数组,原数 独的每一个小九宫格对应新数组的每一行,将已有的数字的项替换成0。接着进行直接填入 部分,对原数独逐九宫格进行查找数据。这部分首先检索新数组,当为非零项时,开始对数 独中对应九宫格的空缺部位进行检验,当发现某个空位行与列不冲突吋,计算该位置能填入 数的个数,若唯一则直接填入,不回溯,并回到开头位置重新检索以防遗漏;若否,则判断 下一位置。 当直接填入完成后若仍有未填的就进入回溯部分。该部分准备工作一样,当进行到某个 空位可以填入时,将此位置记录储存,用以回溯。当之后赋值错误时,可以返回原始位置, 将数字清零,并对下一位置进行赋值。如此循环直至结束。 程序设计 确定了算法后,我们就开始程序

文档评论(0)

1亿VIP精品文档

相关文档