• 公告

    • 叶卡林娜

      捐赠本站 (2018.11.28更新)   2017年04月13日

      独·数之道网站创建于2008年5月底,目前主要由休息负责网站程序、叶卡林娜负责日常管理。我们一直秉承着无广告、无弹窗、免费的公益原则,为大家提供数独游戏、教学、对战等服务。我们没有考虑过利用本网站盈利,今后也不会放置任何广告,所有能开发出的新功能、能获取的资料也会一如既往免费提供给玩家。但兴趣不代表一切,网站维持也需要费用,时常关注我们网站的朋友也会发现在2012年2月3号时网站无法访问,因为空间商认为本站的CPU资源占用大,而要求我们修改程序,在交涉后过了一天才同意重新开通帐号48小时后再次检测,但在2月6日下午再次被封。不过自此公告发出后收到了网友的捐赠,在2012年2月6日讨论后决定购买国内的VPS主机。希望有经济能力的朋友可以继续协助我们运营网站。

      目前网站运行费用:
      cn域名:99.00元/年,已续费2年(168.00元,有效期至2014年7月8日)
      已续费5年,55元/年,共计275元,有效期至2019年7月8日。

      西部数码国内VPS主机商务3型:2599.00元/年+补差价424.00元(2012.3.20支出)+补差价381.00元(2012.5.25支出).
      2013.3.31更换机房,补差价469.00元,续费一年3980.00元。(有效期至2014年4月17日)
      2014.4.2购入西部数码云主机,花费7900.00元,有效期至2018年4月2日。
      2017.05.28主机续费,花费7650.00元,有效期至2023年4月9日。

      截至2012.05.25数独百科总收入3335.00元(现在已经取消现金奖励了)。
      2012.6出题费收入1000.00元。
      2012.11-2018.09.11江南晚报出题稿费收入8300.00元。

      网站七周年活动赠品总支出:1291.00元

      总余额:4526.00元

      如果你想捐助本站可以通过以下方式:
      支付宝捐助:转账至支付宝账号[email protected](如需赠品请留下地址、姓名、电话)
      请在付款时留下姓名以便我们统计,有问题可以发送站内信或邮件([email protected]

      另外如果你希望帮助我们网站设计其他题型题库、美化首页、管理论坛欢迎跟我们联系,加入本站管理QQ群6750923,加入时请说明加入理由。

      目前收到捐赠列表(按捐赠时间倒序排列): 周健懿 200.00元(2018年11月4日)
      胡巍(榕初) 500.00元(2018年8月28日)
      岳湘 50.00元(2018年7月25日)
      汤糖 100.00元(2018年7月2日)
      高魁 81.00元(2018年5月15日)
      温红毅 200.00元(2018年5月13日)
      刘启芳 50.00元(2018年4月10日)
      夏有章 100.00元(2018年3月26日)
      毛燕华 100.00元(2018年3月6日)
      迷 50.00元(2018年3月4日)
      邹剑洪 100.00(2018年1月4日)
      邓艳(指间沙) 100.00元(2017年9月28日)
      gzgyfwj 50.00元(2017年9月17日)
      谢道台(@TTHsieh) 600.00元(2017年6月4日)
      姚秀云 500.00元(2017年5月20日)
      文忠 100.00元(2017年5月19日)
      叶志鸿 55.00元(2017年5月16日)
      倚心 200.00元(2017年5月3日)
      李宏波(li2008di) 100.00元(2017年4月6日)
      黄中华 200.00元(2016年10月6日)
      Unyielding head 10.00元(2016年9月25日)
      川云 100.00元(2016年9月18日)
      章文嵩 688.00元(2016年4月16日)
      窗外的远景 100.00元(2016年3月23日)
      檀银兵(老猫) 388.00元(2016年3月15日)
      彤洋 100.00元(2015年10月7日)
      连伟杰 500.00元(2015年6月16日) - 未提供地址
      李芊子 100.00元(2015年5月25日)
      韩春英(群ID:冬天老顽童) 100.00元(2015年5月25日)
      王鹏威(群ID:datou) 100.00元(2015年5月20日)
      zrlyg(@自然) 333.00元(2015年5月14日)
      徐燕 200.00元(2015年5月14日)
      小星 40.00元(2015年5月13日)
      黄振谱(群ID:甫问)500.00元(2015年5月13日)
      石鹏(群ID:锦云) 100.00元(2015年5月13日)
      钱坤(群ID:下沉的浮力) 500.00元(2015年5月13日) - 未提供地址
      杨超(群ID:sokoban) 121.00元(2015年5月13日)
      卓诗维(群ID:Estela) 80.00元(2015年5月12日)
      邓艳(群ID:指间沙) 100.00元(2015年5月12日)
      王嘉豪(群ID:超级剑客davis) 500.00元(2015年5月12日)
      谭建红 100.00元(2015年5月12日)
      孙军 100.00元(2015年5月12日)
      王思思(@penny)100.00元(2015年5月12日)
      黄中华(群ID:yangzhou) 200.00元(2015年5月12日)
      庞东(群ID:简简单单) 100.00元(2015年5月12日)
      陈世鸿 100.00元 (2015年5月12日)
      黄晓伟(群ID:xiao01wei) 100.00元(2015年5月12日)
      高东友(群ID:羽翼) 200.00元 (2015年5月11日)
      甄敏鸿 200.00元(2015年5月11日)
      朱兵(群ID:酱牛) 100.00元(2015年5月11日)
      王明意(慕容) 100.00元(2015年5月11日)
      朱玉慧 80.00元(2015年5月11日)
      施政 100.00元(2015年5月10日)
      甘露 100.00元(2015年5月10日)
      瓜子拌饭 200.00元(2015年3月25日)
      jingle 200.00元(2015年1月20日)
      deliayk 200.00元(2014年10月28日)
      R9 100.00元(2014年1月14日)
      王思思(@penny) 100.00元(2013年1月29日)
      芦向明(谜者老芦) 300.00元(2012年12月26日)
      谢道台(@TTHsieh)372.00元(2012年8月21日)
      黄宗杰 100.00元(2012年2月20日)
      贾思帆(群ID:justfun) 500.00元(2012年2月13日)
      朱兵(群ID:酱牛) 100.00元(2012年2月11日)
      应长丰(@乐逍遥) 200.00元(2012年2月11日)
      伊莎贝拉 200.00元(2012年2月10日)
      王嘉豪(群ID:终极剑客) 200.00元(2012年2月10日)
      刘旭辉(群ID:巧妮儿) 100.00元(2012年2月9日)
      席瑞娇 100.00元(2012年2月9日)
      盛平(群ID:歪歪) 500.00元(2012年2月9日)
      @迷糊笨笨 500.00元(2012年2月9日)
      黄中华(@yangzhou) 200.00元(2012年2月9日)
      史春燕(群ID:春燕) 100.00元(2012年2月8日)
      杨嘉 100.00元(2012年2月8日)
      赵晓红(群ID:small red) 200.00元(2012年2月8日)
      fpro32(程序交易通)50.00元(2012年2月7日)
      创造春天 50.00元(2012年2月7日)
      林贵新(@verydao) 500.00元(2012年2月6日)
      卢晓萍(群ID:夏天玩童) 600.00元(2012年2月5日)
      zrlyg(@自然) 800.00元(2012年2月5日)
      梁跃(@月亮大哥) 500.00元(2011年3月)
      廖然(@captain)600.00元(2010年11月)
      谢道台(@TTHsieh)500.00元(2009年3月)
    • 叶卡林娜

      数独谜题类站点博客列表   2017年04月13日

      网站类 Fed Sudoku - 每日数独,每周10题 Croco Puzzle - 每日两道谜题 Janko - 有很多谜题 Puzzle Picnic - 网友出的数独、谜题,每日更新一题 LogicMastersIndia - 每月数独谜题月赛 Killer Sudoku Online - 每日每周杀手数独、数比杀手数独 Sudoku Cup - 每年2次数独线上赛 Sudoku Variants - Uwe Wiedemann的数独谜题站点 The Griddle - David Millar的数独谜题站 Oubk欧泊颗 - 中文数独网站,可以在线PK 数独玩家论坛 数独解题技巧汇编 - 教你数独怎么玩 英国数独官网 澳洲数独官网 在线标准数独解析 - 教你数独技巧 Sudocue - 免费的数独软件sudocue,可解标准数独、锯齿数独、杀手数独 Djape - 他们有出版很多数独、谜题书籍 Griddlers - 数图专题网站 Nikoli - 日本谜题公司 17提示数标准数独搜集验证 Logic-Pixels
       
      博客类 The Art of Puzzles - Thomas Snyder(周五更新) Detuned Radio - Tom Collyer(周五更新) Melon's Puzzles - Palmer Mebane(周三更新) PS's puzzles + - Prasanna Seshadri(每日更新) (主に)へやわけ保管庫 - 木兄(每周2、3、5、6更新) Para's Puzzle Site - Bram de Laat A Cleverly Titled Logical Puzzle Blog - Grant Fikes 石氏是时试 - 本站站长休息 陈岑的数独博客 - 陈岑 创意数独 快乐生活 - 乐逍遥(应长丰) 金策空间 - jcvb(金策) 谜者老芦 - 芦向明
登录来追随这个  
追随者 0
小向爱数独

[数独高级技巧] 鱼

17 篇文章在这个主题里

我们在之前的内容之中学到了数组,那么这里将为您拓展一种新的技巧,这种技巧称为鱼。

X-Wing.png.85d68356a031ea8e34573f6350bc5b15.png

当填到这里的时候,发现数对已经填不下去了。此时,我们可以观察到,在行A中,只有A2 & A6可以填入6;而在行H中,只有在H2 & H6可以填6。它们刚好构成一个矩形。可是这有什么用呢?
我们不妨假设一下(请在图上找到对应单元格,并进行推理):
 情况1:如果A2填6的话,那么A6 & H2将不能填6,那么就只有H6填6了;
 情况2:如果A6填6的话,那么A2 & H6将不能填6,那么就只有H2填6了。
只有这两种情况了。我们可以看到,情况1的假设是“A2=6”,结论是“H6=6”;而情况2的假设是“A6=6”,结论是“H2=6”。将这两种情况分别放到图上看,我们可以发现,无论是左上角(A2)和右下角(H6)填6,还是右上角(A6)和左下角(H6)填6,都会使得列2 & 列6出现一个6。所以列2 & 列6的其余位置,即非这个“矩形”的四个顶点外的其余单元格内,都将不再出现6的身影。因此,有C6, G6, I2, I6<>6。

把每一条假设的开头位置和结尾位置连接起来,会发现它组成了X的形状。所以这个解法的英文名由此得来——“X-Wing”。在英语中,wing是翅膀的意思,就像一个展开的翅膀一样。它有一个独特的名称——四角对角线法则。
有意思的是,这种方法还能够拓展到三阶的情况。这也就是为啥它还有一个名字,叫做二链列了。
在刚才的二链列中,我们将产生二链列的单元(图中的行A和行H)叫做定义域(Defining Set/Base Set),表示二链列被定义的位置,这里就可以描述为定义域行AH;而若要描述这个定义域的其中一部分,我们可以用子定义域(Defining Subset)这个术语,比如:子定义域行A;并将需要排除候选数的单元(图中的列2 & 列6)称为摒除域删除域(Secondary Set/Cover Set),表示用于排除该候选数的位置。而图中涉及假设的所有位置(绿色的候选数构成的)叫做鱼身(Body)。这到后面的鱼的变型中会非常常用。这样的结构我们称之为(Fishy Cycle)或链列。

分享这篇文章


链接文章
分享到其他网站

三链列(剑鱼)比起二链列的情况会多一些,因为它需要更多的假设和推理。例如下面的这个盘面:

58f330f006125_.png.5ccfd71983ee80061d806575c336ef15.png

此时我们观察到,在行C、行F和行H都有且仅有列标为5、6、7的单元格可以填,所以,4在这3行里被控制在那9个单元格内。这时候就假设一下:
情况1:如果C5=4,则F5, H5, C6, C7<>4,解不出,就继续假设:
A. 如果F6=4,则F7, H6<>4,则H7=4;
B. 如果F7=4,则F6, H7<>4,则H6=4;
情况2:如果C6=4,则C5, C7, F6, H6<>4,解不出,就继续假设:
A. 如果F5=4,则F7, H5<>4,则H7=4;
B. 如果F7=4,则F5, H7<>4,则H5=4;
情况3:如果C7=4,则C5, C6, F7, H7<>4,解不出,就继续假设:
A. 如果F5=4,则F6, H5<>4,则H6=4;
B. 如果F6=4,则F5, H6<>4,则H5=4。

我们发现,无论是哪种情况的假设,始终都会使得列5、列6 & 列7上至少都有一个4。也因此,列5、列6、列7的其他位置上,候选数4将可以被安全地删掉,亦即图上的A5、A6、B5、B7、D5、D7、G5内的候选数4均将被删除。这就是三链列或剑鱼。注意,此题的三链列的定义域为行C、行F和行H,删除域为列5、列6 & 列7。
但是,图中有一个奇怪的地方。图上有一个宫摒除法,是H5=8,由B6(8)、G1(8)和I8(8)在宫8内摒除得到的。填入了这个8之后,就会发现一大堆摒除法,还有两个唯一余数法,于是就一口气做到了这里:

58f3312512a13_.png.f41735e244a2d93ba2485ef3939cd232.png

原来的三链列残缺成了这样(缺了一个“角”),那么它是否还是可用的呢?答案肯定是可以的。这并不影响三链列的用法。假设会比刚才的要少,但是仍能推理,并且把所有假设集合在一起,同样可以使得列5、列6、列7都至少有一个4的出现。此处将不列举其假设。这种情况被称为鱼的残缺(Incompleted)。您可以想象为,这是一个“二维”的数组,填数情况已经列举到这么3行3列之中,相当于一个三链数涉及的3格内的填数情况,第1格是{123},第2格是{123},而第3格则是{12}。数组的要求就需要满足每一格不一致,所以只需要至少每格2个候选数,就可以构成数组了。
所以应注意的是,鱼类比于数组,也应满足:每个定义域和每个删除域内都需要保证至少2个单元格。不论是否是三链列还是接下来的四链列,乃至后面的变异鱼,全部都需要满足此规律。

分享这篇文章


链接文章
分享到其他网站

58f331e1ef077_.png.5cdbdfa56245d833b7fb623eff56863a.png

它的定义域是列2、3、7、8,而删除域则是行A、B、D、G。此处省略其假设情况,请自行推理(四链列的出现频率是极低的,很难碰到,所以此处并没有重点讲解,依然利用刚才的假设法可以得到对应的结论,只不过可能会分3次假设,就比较困难)。但是,四链列和三链列的推理方式大同小异。这个就是四链列或水母。此处结论应为:行A、行B、行D、行G中剩余单元格内将删除候选数9。
但是,四链列也同样具有部分单元格残缺的情况,而且相对于上一例,一般来说,残缺的则更为常见。例如下面的这个残缺四链列结构:

58f331ef7bccf_.png.493ff5e949cf1fb58d1759a33ca78bad.png

此处,四链列所涉及的单元格仅仅只有8格,但是仍然可以进行推理。不过,它只有两种情况了。
如果A1=8,则I1<>8,则I2=8,则F2<>8,则F5=8,则G5<>8,则G6=8,则A6<>8;反过来也就得到了I1、F2、G5、A6都为8了。但无论是那种情况,列1、列2、列5、列6内都不得在其余单元格内出现8。因此删掉它们。

分享这篇文章


链接文章
分享到其他网站

高阶链列(高阶鱼)是当阶数大于4后的情况。这样的技巧也同样存在,但是和n>4的数组一样,只存在于理论之上。这是因为高阶链列会被与其正交的鱼完全替换,原鱼和可用于替换的鱼的阶数和盘面尺寸有关,最高的是阶数与9互补的情况。
根据上述加粗文字可列出下表,从下表中就可了解到高阶链列的一些详细情况了:

58f332c488cad_2.png.4a7cd24aac802fd659f229aab69adf32.png

从上表中,您也能够看出,为什么不存在八链列的说法。

下面将展示五链列的其中一个例子。黄色数字1为被删除情况,绿色1为五链列,它也属于残缺的情况。不过,它可以转化成一个关于候选数1的三链列。

58f332da59864_.png.8a2682e7f120109dfcf4c6a179fd7e0a.png
另外,区块摒除法还有一个别名,是一链列(Cyclopsfish)。这是为什么呢?这会在后面讲到。
最后,需要注意一点。这一章讲到的技巧被称为鱼或者链列。链列前面加上前缀数字表示这个技巧是多少阶的,此处即表示多少行多少列。与此同时,也可以说它的“品种”是剑鱼和水母等等,而二链列则没有对应的品种名称,但仍然属于鱼这一大类。

分享这篇文章


链接文章
分享到其他网站

如下图所示,这是一个二链列,但是其中的两行被“绑”在了一起,但仍然可以看成是一个定义域为行B、行G的二链列。
其中的“*”符号表示删数情况,“/”符号表示不含有某个候选数,而“x”符号表示含有某个候选数。
此时我们发现,结构可以删除掉宫内的一部分位置,即如盘面所示。
58f3339148274_.png.9f73832fc5758ba429f00da7563c464d.png
我们发现,假设过程中,B4、B5、G4、G5这4格必然有1格会填这个候选数,所以说,无论是哪个位置,都会导致这个宫内的其余位置不能填此候选数,故这个宫内的这个位置仍然也要被删除掉。所以,图中紫色星号处也能够被删除。

这个思想有些类似于区块摒除法。无论哪格填,都会删掉共同对应的其他位置。
另外,由这条鱼本可以直接删掉删除域的位置的该候选数的,但由于多出了一个由B4、B5、G4、G5这4格构成的两个“特殊”区块,由此也可以得到删数效果的,我们称为层叠区块摒除法或级联区块摒除法,有时被简称为区块摒除法,而类似这种说法,由某种技巧可以“绑定”区块摒除法且也可以进行删数的,我们就直接称为层叠级联(Cascade)现象。
另外,一般的二链列都是4个顶点分属4个宫内的,当出现同侧顶点在同一个宫内的时候,这样的情况也是层叠现象,所以最简单的级联区块摒除法也就是这样的二链列了。即,结构如果存在于B4、B6、G4、G6这4格内,依然称为级联。

分享这篇文章


链接文章
分享到其他网站

鱼是一种很神奇的技巧,但是往往在出现的时候,并不是那么频繁,而往往会多出来一点点。这也就产生了两种变异类型。

58f33459058a8_X-Wing.png.3164ba513170327cac8ae61002053218.png

在盘面中,我们发现有一个二链列,不过很怪异。
我们很容易地发现,这个二链列的定义域是列6 & 列7,很明显,删除域是行B和行D。可是不巧的是,这个关于数字7的二链列多出了一格,位于A6。于是尝试消除掉它。
如果说它本身不存在的话,那么列6 & 列7就只有B6、B7、D6 & D7这4格填入7了,很明显,这样肯定是构成二链列的,那么根据二链列的逻辑推理的话,删除域应为行B和行D;但是如果A6(7)是存在的,那么这个7就会导致行A、列6和宫2内的其余单元格内都不能填入7。
但是列6 & 列7也就这有这5格可以填,别无其它情况。那么我们就知道,这两种情况必然有1种成立,因此删除掉这2种情况都能够删除掉的位置,我们发现,这两种情况都能删的位置只有B4和B5,而B5已经有数字了,那么只能是B4。因此B4<>7。

这种“差一点”的鱼被称为外鳍鱼,其中的那个多出来的单元格被称之为外鳍(Exo Fin),而我们一般都简称为(Fin)。当然,有外鳍就有内鳍(Endo Fin),这将是后面介绍到的内容了。不过,可以先告诉大家的是,外鳍和内鳍的英文名称是来源于化学用语的“外型”和“内型”这一组同分异构体的。到时候利用这一点理解较为复杂的鱼的时候就将变得更加轻松。那么,为什么要叫鳍呢?因为鱼一词的英文名是Fish,也就是鱼的意思,那么多出来的就被理所当然地翻译成了鳍。而定义域仍旧是指原定义鱼位置的区域,但删除域则会发生变化:因为现在多了一个鳍,将只能删除掉数个单元格,而不是一整个单元(行、列)了。因此,例如本题,删除域将从原来而鱼的删除域——行B和行D改动为单元格B4 & 单元格B5。请注意这一点。

那么,鳍在哪里才能够算作外鳍鱼呢?鳍必须位于鱼的定义域内,且必须位于鱼某个顶点处的同一个宫内。这是为什么呢?因为,我们对标准二链列的推理方式就是选中定义域的其中1个,然后分情况讨论,最终能够得到相同的结论,因此得到删除域,删掉删除域内的单元格的数字。这里多了一个鳍,那么就假设鳍成立和鳍不成立,于是也就分成了两种情况。那么,鳍是否只能是1个呢?当然不是,如下面这个例子,就是2个鳍。

58f33497966c3_X-Wing2.png.982e3a5ca35fed373ea5a6d8c2c09ffa.png

盘面就是2个鳍构成的二链列。要么二链列成立,要么旁边的2个鳍成立,虽然很明显,2个鳍不得同时成立,但是目前看来,至少都得有1种情况成立。无论是它们之间的哪一个,都会导致宫4内和行F内的其余单元格都不能填入9了。由于此时,行F已经没有可以删除9的位置了,因此只能去看宫4内的位置了。无论是二链列成立还是鳍成立,必然都会使得既在宫4、又在列1内的D1 & E1删除掉9。因此,D1, E1<>9。但要拥有这样的推理的话,多个鳍必须位于同一宫内,否则它就不是外鳍鱼了。当然,三链列也同样存在外鳍鱼。

58f334bb5be9f_.png.aa2eb4907b1e36d5b6e12512b1aa0a5d.png

如图所示。同理,分2种情况,要么是这个残缺的三链列成立,要么是鳍成立。因此删除掉都能删掉的部分,即C4(7)。

58f334cf20a9e_.png.8bab024657caf91a0b513795915f3c81.png

如图所示,外鳍四链列。分2种情况,要么是残缺的四链列成立,要么是这个鳍成立。因此删除掉都能删掉的部分,即C1(2)和C3(2)。
这些就是外鳍鱼的所有情况了,不过,它还能简化吗?请看下一节。

分享这篇文章


链接文章
分享到其他网站

刚才讲到了外鳍鱼,但是它还能不能再简化呢?当然是可以的。不过,这种鱼就更加奇怪了,而且长相变化多端。先来看一个“简化版”。

58f3352434159_X-Wing.png.dd39d0e9f9d547b7bde6071eb910f686.png

如盘面所示。这里有一个类似于外鳍鱼的形状:定义域为列2 & 列8,鳍位于D8。但是又有点不一样的地方,在离鳍最近的二链列的那只“腿”不见了,不过没关系。
根据外鳍鱼的推理方法,要么二链列成立,要么鳍成立。但是我们发现了一个问题,二链列缺了一只腿。此时我们回忆二链列的逻辑推理方法:如果这个时候,这个二链列在没有缺腿的情况时,我们是按照定义域来分别假设出两种不同的情况,最后会得到的填数情况,在这个二链列中,要么是左上(F2)和右下(H8)的2格填,要么是右上和左下(H2)2格填。现在右上角缺了一只腿,那么后者就不成立了。那么,综合外鳍鱼的说法,要么鳍成立,要么二链列的其中一种情况成立,也就是左上和右下成立。现在我们就要考虑一下,到底怎么推理了。
首先,思考一下位于二链列左下的单元格H2填入7,刚才说到要么是左上(F2)和右下(H8)的2格填,要么是鳍(D8)填。但是这都和H2没有关系。那么它能不能也删除掉呢?这显然是不可以的。因为它有可能单个成立,我们没有任何的理由说明它一定是错误的。
二链列只能删除删除域,也就是行F和行H的其余单元格的7;而鳍能够删除掉行D、列8 & 宫6内的7。但是不管是哪种情况,二链列始终都是成立的。因此删除域就是F7 & F9。F9已经有数字了,所以F7<>7。

这个叫做外鳍退化鱼的解法英文名叫做Sashimi Fish,其中的Sashimi其实是一个日语词汇的罗马音得到的,它的原意是“生鱼片”(罗马音:Sashimi,日语:刺身(さしみ))。起名的原因不明。
这种鱼由两部分构成,一部分是外鳍,而另一部分则是退化(Degenerated)后的鱼。退化鱼不能单独使用,因为没法正常地完成推理,缺少了一只腿使得原来的缺腿和其对角位置上的另外一个并不能组成一对了,因为其中的一格已经不存在了,所以这就需要和鳍一起进行推理才能得到结论了。这时候就总结一下这种鱼的推理思路:假设鳍成立和不成立,就分成了两种情况,这两种情况会同时导致鳍所在的宫和鱼的删除域的共同对应的位置不能填,因此删掉它们。而之前提到的“残缺鱼”是可以依然推理的,请注意“残缺”和“退化”这两个词语的区分。
这种外鳍退化鱼是最为标准的形式,当然,它也有其他的变异情况。

58f33578a6672_X-Wing2.png.6dcc09fe1fb091f867eb9364bc7d2aef.png

如所示,这是上一例中的另外一个外鳍退化鱼。这是由两个鱼鳍构成的外鳍退化鱼。这种情况同样只能删A4, A5(9)。我们按照外鳍退化鱼的思路,要么鳍和左下角(I2)成立,要么是A2, I6(9)成立。二链列中,就只剩下“仅I2成立”和“A2 & I8成立”这2种情况了。这样的二链列也是成立的,所以删除的是二链列原来的删除域,即行A和行I。但是那2个鳍使得最终的删除域变成了A4和A5,因此,A4, A5<>9。

这又是一种鱼变型,同刚才的推理方式,不过鳍并不是连在一起的。您可以自行进行推理,这同样是可以得到结论的。
了解到上述的思路后,接下来是带外鳍退化三链列。

58f335cf079f2_.png.a595bec274fec3b07fa36376954ccc83.png

原本是一个最简的三链列,定义域为列2、列5 & 列8,然而不巧的是,构成三链列的必要单元格之一(A2)缺失了。这样,三链列就退化了。假设鳍成立的话,行B、列2 & 宫1内的其他单元格内必然不填数字5;如果鳍不成立的话,对于这个退化三链列来说,I2一定为5,E5一定为5,A8一定为5。于是,就有这两种情况,要么B2=5,要么I2, E5, A8=5。无论如何,都会导致宫1 & 行A的公共部分都不能填入5。因此,A1, A3<>5。
但是,这个题目还可以删除掉B7(5)(图上未给出标注)。那么,这个又是怎么回事呢?
我们不妨切换一下思维,将图上A8(5)看成鳍,而B2(5)看作退化三链列的一部分。推理过程同刚才的盘面 37。不过由于鳍的位置切换到了宫3,所以三链列变成了宫3 & 行B的公共部分,所以B7 & B9不能填5。由于B9本来就没有候选数5,所以只有B7<>5。
像上面这种情况,当鱼鳍可以和鱼身的某一个位置互换,但仍然可以删数的,我们称为共轭鱼(Siamese Fish),也可以被称为摩天楼鱼。
这个就是外鳍退化鱼。当然,也存在四阶的情况,此处将给出一个例子如盘面 39所示,但推理不再展示,请自行推理。

58f335f3a1e4f_.png.88a1cfbfdffbefcb35f79ae59994794c.png

此内容已被编辑, ,由 小向爱数独

分享这篇文章


链接文章
分享到其他网站

在前面我们讲解了鱼的带鳍变形,但是它的形状其实也是可以变异的。

58f3372bc94a4_Franken-1.png.caec5cd7baea26661f7b7531afc344fc.png

所示,“/”表示不能填某一个候选数(图中用字母x表示),这样一来,就是一个标准的三链列,定义域用橙色表示,而删除域则用蓝色表示。
我们尝试移动其中的一列,以致盘面所示情况。

58f33730a9f4f_Franken-2.png.5cf1fb5ed40d891c075d3d6d571d1f12.png

现在三链列仍旧成立,只是由于x位置的移动,删除域发生的一点小变动,但并不影响。我们发现,当“合并”到一起的时候,就存在右边的两格在同一宫内了,此时我们思考,能否将定义域的其中一部分变化到宫内。
例如行B,我们去掉在行B的定义域,然后转化到宫3内。这个时候我们发现,x的位置可以在宫3的删除域内的任意位置都可以,而A9、B9、C9这3格是一定不可能存在x的,这是因为,如果这3格里面存在x了的话,这将导致这个鱼的形状会错开,以致不能删数。于是,就变成了这样。

58f337659c6cf_Franken-3.png.1ba8e4fa499c6b9934cd31d87899903c.png

如图所示,但是删除域是否依然没有变化呢?尚不知道。所以我们采用枚举的情况来假设一下。
由于宫3内有6个可能位置都能填x,那么我们一个一个假设,但是由于A7、B7、C7这3格的假设结果一定是等效的,A8、B8、C8这3格的假设结果一定也是等效的,所以最终就只有2种情况,加上宫3不填的可能,一共是3种情况,其推导过程如下所示:
当A7、B7、C7的其中之一填x的时候,此时我们发现,列7都不能填x了,因此,观察下方行E和行H,由于列7不填的关系,现在列E和列H就只有E2、E8、H2、H8这4格可以填x了,这个时候,刚好构成了一个二链列的结构,因此此时的删除域是列2和列8,但是由于A7、B7、C7存在一格填x的缘故,所以列7的其他位置也不能填x;
当A8、B8、C8的其中之一填x的时候,此时我们发现,列8都不能填x了,因此,观察下方行E和行H,由于列7不填的关系,现在列E和列H就只有E2、E7、H2、H7这4格可以填x了,这个时候,刚好构成了一个二链列的结构,因此此时的删除域是列2和列7,但是由于A8、B8、C8存在一格填x的缘故,所以列8的其他位置也不能填x;

但是,当宫3内的那6格一个x都不填的时候,此时我们发现,宫3将没有一个位置能填x了,因此这个情况是错误的。
此时我们发现,这3种情况除最后一种情况是错误的,被排除了之外,剩下2种情况都能导致列2、列7和列8不能填入x,所以说,原本的删除域其实是没有发生变化的。
盘面的结构,就被称为宫内鱼(Franken Fish)。宫内鱼的定义是:当某个鱼的定义域或删除域都是属于“a个行 + b个列 + c个宫”,且a和b不同时大于0且c > 0的,则就是宫内鱼。
我们很容易看出来,这样就直接不允许行和列不同时存在了,也就是行宫、列宫的组合。
那么它是否存在残缺的情况呢?是的。我们尝试从宫3开始下手。由于是分两种情况假设,因此至少列7和列8内都得有1个x,因此至少得有2个。但是能不能同行呢?可以,但是就恢复了原来的三链列了,因此此处取不同行的2格填x,因此变成下方的残缺结构:

58f3379d385f4_Franken-4.png.0eefd0da82992e2dc6fb9b3ebc70b658.png

这样就是一个残缺宫内三链列了。但仅仅只是缺少宫内的情况,其实行E和行H内也可以缺少部分位置的x。
我们说,链列残缺的充要条件是定义域和删除域的所有部分中都至少含有2个x,也就是说,图上的定义域(行E、行H、宫3)和删除域(列2、列8和列9)内的每个部分都需要出现至少2个x。那么现在请自行推理并寻找一下能够缺少的位置。

分享这篇文章


链接文章
分享到其他网站

58f338275dca6_Franken-5.png.a7b21ef1eb5ea1b9d62d1041e02a32be.png 58f33827cf270_Franken-6.png.1048a45ec9cf80ebdc0b60114d024335.png

如盘面所示,就是二链列转变到宫内二链列的图。而下面的这个图就是宫内二链列的残缺情况。

58f33828499ce_Franken-7.png.2e4e88827b1375b9623a8f57b7bb4de1.png

这就是一个宫内二链列的简图,不过我们发现,这个图里面,特别是行H的部分,会构成一个区块摒除法,直接可以删除一部分的数字,而且这种结构很容易被找到。所以我们说,宫内二链列完全等价于(级联)区块摒除法,此处可以看成全部都是只能删数的普通区块摒除法而构成的级联区块摒除法。

另外,宫内四链列的简图如下,由于结构复杂,所以不给出推导步骤,如盘面所示。

58f33828bbd60_Franken-8.png.552efbbc7f5a7e8ddf729ca1c4967e1d.png

这样就构成了宫内四链列。但是要注意的是,四链列不止可以变成这样,其实左边还可以变形到宫内。例如下面就是其中的一个情况。

58f338293cdff_Franken-9.png.e7487930d0e86e0079cda099d0229014.png

由于宫内二链列会被代替,因而此处不介绍此技巧的使用,只介绍宫内三链列以及宫内四链列及它们的变形。

分享这篇文章


链接文章
分享到其他网站

58f338ce5368c_Franken.png.c76037a4438e43afaa35527afcf1cfef.png

如果是一个标准的三链列的话,定义域是行C、行D、行G,或者说是行C、行D、行I,这两种明显都是不符合的。但是作为一个宫内三链列,这里的鱼是行C,行D,和宫9,有一行转变成了一个宫。
我们平时是怎么看一个三链列的呢?排列组合。3×3的剑鱼满的就是6种排布,当然如果有缺项,情况可能会少,但无论怎么排,行内剑鱼就删除列里的其他,列内剑鱼就删除行里的其他。
这个其实也是一样。宫9只有两种填法,填在G8,那么C4、C9、D4、D9这4格就是一个二链列;如果填在I9,那么C4、C8、D4、D8这4格也还是一个二链列。
但是无论是哪种情况,删除域依然不变,仍然是列4、列8和列9。因此,删除域内的所有的1都将被删除。

这个例子不好理解?我们再来找一个例子说明。

58f338e0e57b6_Franken1.png.86333000bde087d8a33a54e2d7824059.png

如图所示,它是一个定义域为行A、行I和宫5的三链列。按宫5分两类讨论填数情况。
. 如果D4|F4=6,则列4一定不能填入6,而对于定义域剩余部分,即行A和行I来说,就只剩下A6、A9、I6和I9这4格能够填6,这样就构成了一个二链列结构,删除掉这个二链列的删除域,即列6和列9,外带假设开始就能够得到的列4,一共是3个列;
. 如果D6|F6=6,则列6一定不能填入6,而对于定义域剩余部分,即行A和行I来说,就只剩下A4、A9、I4和I9这4格能够填6,这样就构成了一个二链列结构,删除掉这个二链列的删除域,即列4和列9,外带假设开始就能够得到的列6,一共是3个列;
. 而如果宫5内不填入6的话,这样一定不满足数独规则,于是直接排除此情况。
此时我们发现,一共这3种情况都会得到列4、列6、列9这3个列就是这个宫内三链列的删除域,因此删除域内将不再含有6。

宫内四链列和宫内三链列的逻辑推理思路差不多,但形状会变异得更加厉害。此处仅列举其中的一种较为标准的形状并予以分析。

58f339054c7af_Franken.png.9cc1da7e853c0bdcd12fafe8ccfee688.png

这只“宫内水母”的定义域为行B、行F、行H和宫6。同样按照宫6分类讨论并假设。
如果E7=6,则B4、F3、F4、H3、H8能够构成一个退化三链列,而把E7(6)看作外鳍的话,那么这个退化三链列其实是可以用的,因此可以删除列3、列4、列8,再带上鳍所在的位置可以排除列7的所有6,其实定义域仍然没有发生变化;同理,如果C8|D8=6的话,则也是一个道理。

分享这篇文章


链接文章
分享到其他网站

请登录后来留意见

在登录之后,您才能留意见



立即登录
登录来追随这个  
追随者 0