阴影
阴影 阴影
第B0006版:生活家·GAME
3  4  
PDF 版
· 用7、3、9、5算算25、65、95
· 自编代码解数独
收藏 打印 推荐  更多功能 
返回主页 | 版面导航 | 标题导航      
上一期  下一期  
浙江日报报业集团主办      
3上一篇  下一篇4  
2007年4月6日     收藏 打印 推荐 朗读 评论 更多功能 
自编代码解数独
  今年1月1日我开始订阅钱江晚报,几期读下来,对生活家每周五的游戏中的数独情有独钟。不过,要是手工计算起来,就比较麻烦。再加上我工作关系,自己用ORACLE的存储过程写了一段小代码。几次下来,基本都可以迅速而且准确地解出数独。

  以下给大家大致解释一下算法:

  1.对所有未定的格子都初始化为“1、2、3、4、5、6、7、8、9”。

  2.在每个未定的格子中,根据纵列中已经确定的格子的值,从待定列表中除去该纵列中已确定的唯一的格子中所包含的值。

  3.在每个未定的格子中,根据横列中已经确定的格子的值,从待定列表中除去该纵列中已确定的唯一的格子中所包含的值。

  4.在每个未定的格子中,根据3×3格子中已经确定的格子的值,从待定列表中除去该纵列中已确定的唯一的格子中所包含的值。

  5.对每个格子遍历(按顺序对每个元素都做某种操作,如检索等)。

  6.所有格子遍历后,若还存在未确定的格子,重复上述过程。

  一般遍历五次后,入门级的数独所有的格子都只剩唯一解。但是对于进阶级和骨灰级的题目,无法根据给出的条件,直接确定所有的格子。此时,需对未确定的格子中可能值进行推演:

  这会有三种可能结果:

  1.猜测的数字不对,导致行、列、3×3的格子出现重复的数字,则用下一个数字重新演算。

  2.猜测的数字给出后,无法得到正确的解,也不导致某一规程出现互斥,则该数正确,对下一个不确定的格子进行推演,直至数独求解。

  3.猜测的数字全部给出后,得到最终数独的解。        

  Jiang Xun

3上一篇  下一篇4  
收藏 打印 推荐 朗读 评论 更多功能 
钱江晚报 生活家·GAME B0006 自编代码解数独 2007-4-6 48257178002CE173482572B4001640F7 2