数独高级技巧_数独高阶技巧

数独高级技巧_数独高阶技巧链(Chain)是数独高阶技巧的核心,所有数独盘势都可以通过各种或简单或复杂的链来解出答案。链的本质是命题之间的关系,在解数独时,每个填数的步骤都可表现为在『A格中填入1』、『B格中填入2』这样非真即

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

链(Chain)是数独高阶技巧的核心,所有数独盘势都可以通过各种或简单或复杂的链来解出答案。链的本质是命题之间的关系,在解数独时,每个填数的步骤都可表现为在『A格中填入1』、『B格中填入2』这样非真即假的直言命题形式,如果条件不充足,命题真假不能判定,我们把数独中这种命题之间的真假关系称之为链。用链解题的逻辑在于,籍由命题真假值的推导,根据链两端点命题的真假来判断其共同作用格内候选数的真假。

强关系(Strong Links)和弱关系(Weak Links)

链可分为强链与弱链,分别由强关系和弱关系构成,定义如下:

强关系——对应矛盾关系和下反对关系,两个命题不可同假,必有一真(下反对关系可以同真);

弱关系——对应矛盾关系和上反对关系,两个命题不可同真,必有一假(上反对关系可以同假)。

 

 
数独高级技巧_数独高阶技巧

图1-矛盾关系

​图1小九宫格中,数字A只可能出现在R1C1和R3C3两个格中。根据数独规则,数字1-9在每个Unit(行Row、列Column、宫Box)中均需出现且仅出现1次,易知两个A之间为矛盾关系,两者不可同假,必为一真一假,可作出判断:(1)若 R1C1≠A,则R3C3=A,两个A之间为强关系,构成强链,记作R1C1{A}==R3C3{A};(2)若R1C1=1,则R3C3≠1,两个A之间为弱关系,构成弱链,记作R1C1{1}—R3C3{1}。

 
数独高级技巧_数独高阶技巧

图2-上反对关系

​再看一个例子,图2中,数字A仅能出现在三个格中,根据数独规则,可知必有一个A为真,其余两个为假,则三个A两两之间不能同真,为上反对关系,可作出以下判断:(1)若R1C1=A,则R2C2、R3C3≠A;(2)若R2C2=A,则R1C1、R3C3≠A;(3)若R3C3=A,则R1C1、R2C2≠A。

在本例中,存在三条弱链,分别是R1C1{A}—R2C2{A}, R1C1{A}—R3C3{A}, R2C2{A}—R3C3{A}。

在以上两例中,可以看到,当某单元内特定候选数仅存在于两个格中时,两格中的该候选数是矛盾关系,二者之间既构成强链也构成弱链。而当该候选数存在于三个及以上格中时,两两之间是上反对关系,构成弱链。

 
数独高级技巧_数独高阶技巧

图3-矛盾关系、上反对关系

强弱关系并不只局限于同一候选数,在图3九宫格中,R1C1中仅存在候选数A、B,R3C3中仅存在候选数A、B、C。如前两例,我们可知,R1C1格中的A和B为矛盾关系,二者之间即是强链也是弱链,R3C3中的A、B、C两两之间为上反对关系,构成弱链。

 
数独高级技巧_数独高阶技巧

图4-下反对关系、ALS

图4是复杂一点的情况,R1C1、R23C2三格中共有{1234}四个候选数(这种n格中有n+1个候选数的结构称为ALS——Almost Locked Set),根据数独规则,可知这四个候选数中有且只有一个为假,由强弱链定义易知1、2、3和4之间,两两互为强链。与前述矛盾关系的例子不同,本例{1234}中必有三个为真,则其两两之间为下反对关系,可以同真,不能构成弱链。

链是如何工作的

以上我们对强弱链有了基本的了解,接下来我们把链连接起来看看会发生什么。首先是强弱强链,A==BC==D,我们根据强弱链的定义,画出真值表(只保留有效推导)

 
数独高级技巧_数独高阶技巧

图5-强弱强链真值表

由图5可以看到,不论A取真值还是假值,在链的起点A和终点D中至少有一真,即A与D之间为强关系。我们仅考虑A为假的情况(若其为真,则已经可以用来删数),当A为假时,由于A、B、C、D由强弱链交替连接,推导如下:(1)若A为假,根据强链定义B只能为真;(2)若B为真,根据弱链定义C只能为假;(3)若C为假,根据强链定义D只能为真。

可见这种情况下只存在有一种有效推导形式,即A假D真,显然,只要保证以强链始以强链终,  即使将这条链不断延长下去仍可得出同样结论:若起点为假则终点必然为真。综上可知,强弱强链的两端点互为强关系,必有一个为真。

我们再来看弱强弱链的推导。A—B==C—D,真值表如下:

 
数独高级技巧_数独高阶技巧

图6-弱强弱链真值表

可见A与D中至少有一假,二者互为弱关系。将其不断延长,结果仍会是这样,推导过程不再赘述。这种情况不能直接用来删减A、D共同作用格的候选数。

 
数独高级技巧_数独高阶技巧

图7-强强强链真值表

如果将三条强链连接又会如何呢?A==B==C==D,从图7真值表中可以看到,链的两端点A和D一真一假、全真全假都有可能,也没有删减效果。

由以上推导我们可以总结,在数独解题过程中,链的工作模式是,找到数独盘势中的强链,用弱链将之连接,在此过程中保证强弱交替,以强链始以强链终,则链的两端点互为强关系,必有一真,若其存在共同作用格,则可对共同作用格内的相应候选数进行删减。

链的简单应用

来看一个例子,在图8的盘势中,可以找到一条从R1C4到R4C6的5的链(实线代表强链,虚线代表弱链,R1C4{5}==R1C9{5} — R4C9{5}==R4C6{5}),这条链强弱交替,且以强链始以强链终,可知R1C4的5与R4C6的5互为强关系,必有一个成立,不管哪个成立都可以删去R1C4、R4C6共同作用格(绿色区域)里的5。推导过程如右:(1)若 R1C4=5,则R2C6、R5C4≠5;(2)若R1C4≠5 → R1C9=5 → R4C9≠ 5 → R4C6=5,则 R2C6、R5C4≠5。

 
数独高级技巧_数独高阶技巧

图8-Skyscraper

ps:上图中的结构称为摩天楼(Skyscraper),是双强链(强弱强链)的一种基础应用。

再看一个稍微复杂点的例子,在图9盘势中,可以找到一条从R4C6到R6C1的6的链(实线箭头代表强链,虚线代表弱链),可知R4C6与R6C1中的6互为强关系,必有一个成立,故可删去R4C6与R6C1共同作用格(绿色区域)内的6。大家可自行推导以加强对链的掌握。

 
数独高级技巧_数独高阶技巧

图9-异数链

作者:零时四分_719b

链接:https://www.jianshu.com/p/4c794e9969c3

來源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167874.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nessus怎么安装_还原魔方步骤带图

    nessus怎么安装_还原魔方步骤带图0x01实验原理:利用漏洞扫描器能够自动应用漏洞扫描原理,对目标主机安全漏洞进行检测,附带识别主机漏洞的特征库的功能,从而完成网络中大量主机的漏洞识别工作。(有相应的缺点)0x02实验拓扑:0x03实验步骤:一、下载安装漏洞扫描器nessus1.下载Nessus在官方网站下载对应的Nessus版本:http://www.tenable….

    2022年8月30日
    5
  • jQuery自动与手动图片切换效果下载

    效果图:查看效果:http://hovertree.com/jq/hovertreeimg/下载:http://hovertree.com/h/bjaf/gk8mko69.htm使用代码:Hover

    2021年12月21日
    38
  • Spring Boot – Mybatis 缓存

    Spring Boot – Mybatis 缓存mybatis提供查询缓存,用于减轻数据压力,提高数据库性能。mybaits提供一级缓存和二级缓存。一级缓存一级缓存是sqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个(内存区域)数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。一级缓存的作用域是同一个SqlSession,在同一个sqlSession中两次执行相同的sql语句,第一次执行完毕会将数据库中查询的数据写到缓存(内存

    2022年5月21日
    59
  • vim 设置搜索高亮_vim取消搜索后高亮持续

    vim 设置搜索高亮_vim取消搜索后高亮持续vim搜索设置高亮linuxvim打开文档搜索字符串时,设置被搜索到字符串高亮显示。有两种方法:1、临时设置:vim打开文档–>命令行形式输入sethlsearch。缺点:关闭文档后,下次打开,又需要重新设置一遍。2、永久设置(推荐):在~/.vimrc中配制vim~/.vimrc在文件中加上sethlsearch 然后保存退出便可。

    2022年9月24日
    4
  • Python之旅.第五章.面向对象

    Python之旅.第五章.面向对象

    2021年5月26日
    86
  • 有趣的黑客网站 | 伪装成黑客高手,像电影黑客一样打字如飞

    有趣的黑客网站 | 伪装成黑客高手,像电影黑客一样打字如飞当黑客,门槛太高;装黑客,那就太容易了。。今天刷知乎的时候无意中看到一个非常神奇的网站,能让你瞬间变身成电影中的黑客,操作出一系列看起来非常牛逼且装逼的功能。你只管噼里啪啦打字,而出来的都是规矩的程序编码,时不时还可以插入一些特效,最后一回车,导弹就飞出去了。先把这个神奇的网站网址贴出来:http://geektyper.com/index.html#tab1网站的首页如下…

    2022年7月15日
    19

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号