立即注册找回密码

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

手机动态码快速登录

手机号快速注册登录

搜索

图文播报

查看: 781|回复: 0

[分享] 数独高级技巧(4):Fish

[复制链接]
发表于 2024-10-20 08:43 | 显示全部楼层 |阅读模式

登陆有奖并可浏览互动!

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录 手机动态码快速登录

×
Fish 代表了一组工作原理相同的关于特定候选数的解题技巧。Fish “体型”从小到大包括 X-Wing、Swordfish、 Jellyfish (以及 Squirmbag、 Whale、Leviathan 可以转换成前面的三种),衍生出来的还有 Fish Finned、Sashimi Fish,还有一个更高级的 Franken Fish。

X-Wing:若数字 X 在某两行(列)中只能存在于相同的两列(行),则这两列(行)的其他格都不能有 X。




看上面两张图,如果用链来看的话,其实这是一个特殊的摩天楼的双强链,绿色部分不能为 X,如果不用链,图中 4 个 X,先假设任意一个 X 为真,是不是绿色部分都不能有 X。
来看两个实例


这个例子中 R2 和 R5 只有两个 5,而且都在 C5 和 C8,根据刚才我们的理论,R4C5 的 5(红色)可以删除。
用这个例子,我再来假设一次,R2 和 R5 里面的 5 至少有一个成立对吧,不然有一行没有 5 就不符合数独规则了。

  • 如果 R2C5=5,那么 R4C5 不能是 5
  • 如果 R5C5=5,那么 R4C5 不能是 5
  • 如果 R5C8=5,那么 R2C8 不能是 5,R2C5=5,回到 1
  • 如果 R2C8=5,那么 R5C8 不能是 5,R5C5=5,回到 2
R4C5 肯定不能是 5,假设 C5 或者 C8 还有 5 的话,一样的原理。下面的例子我就不解释这么详细了,这个还是很容易理解的。
再看一个例子


C1 和 C5 都只有 2 个 1,而且在 R2 和 R5,那么 R2 和 R5 其他的 1 都可以删除了。
看了上面的图和两个例子,可以发现这个原理里面候选数永远是一个矩形,形成一个 X。你们在填完候选数后,如果发现一个候选数在某一行(列)只有两个的时候,看看其他行(列)是不是有对应的候选数只有两个,形成一个 X,找到了就可以删数。
Swordfish:若数字 X 在某三行(列)中均只能存在于相同的三列(行),则这三列(行)的其他格都不能有 X。




看上面两张图,一个是标准的,一个是简化变形的。
我先解释一下第一张图的原理,9 个 X 的候选数,无论那一个 X 成立,是不是还剩下 4 个,是一个刚讲的 X-Wing 结构,再按照 X-Wing 的推论就出来了。
看一下简化版本的,我们还是随便一个 X 是真,是不是绿色的格子都不能为 X。
简化版本有很多种变形,但必须要满足那一行(列) X 的个数是 2-3,只有 1 个直接就能出来了,大于 3 个就不符合我们开始的定义了,所以X 的结构可以是 333 - 222 里面的排列组合。
来看两个实例


候选数 2 在 R239 大于 2 小于 3 符合我们上面说的定义,而且在 C158 有关联,所以 C158 其他的 2 可以删除,图中红色部分。我们一般把 R239 叫做 Base,C158 叫做 Cover。


候选数 4 Base 在 R247,Cover 是 235,所以 Cover 上的其他 4 都可以删除。
Jellyfish:若数字 X 在某四行(列)中均只能存在于相同的四列(行),则这四列(行)的其他格都不能有 X。
原理就不推论了,你们应该能自己推出来。
直接看例子


候选数 7 Base R3467,Cover C1259,删除 Cover 的其他 7(红色)


候选数 7 Base R1367,Cover C2589,删除 Cover 的其他 7(红色)
怎么找 Fish 结构
在填候选数的时候,你们可以看一下行(列)中某个数字的个数,比较容易的还是 X-Wing 和 SwordFish,JellyFish 还是挺难发现的,至少我只用到过一两次。如果填候选数没有发现,我一般会在填完候选数后,截一张图,把还剩中等数量的候选数(3-5)个数字没填的那种画一次圈圈,画完后比较容易看到(推荐 iPad 的那支笔,真的优秀)
高级 Fish(变异的 Fish)
鱼是一种很神奇的技巧,但是往往在出现的时候,并不是那么频繁,而往往会多出来一点点。这也就产生了两种变异类型。
Fish Finned
我们用例子直接说明


上图中候选数 9 比 X-Wing 结构多出来一点东西,看蓝色的 9,这个时候 Fish 怎么用呢?
我们还是来做推论
R2C1 = 9 那么 R3C3 的 9 可以删除
R2C1 != 9 那么 绿色的 9 还是一个标准的 X-Wing,R3C3 的 9 也可以删除
多出来的这个 9,叫做 Finned,中文一般叫做鱼鳍,他的作用是把 Fish 的删除范围限定在来 Finned 的宫内,所以上图这个结构,我们只能删除 R13C3 的 9,R1C3 已经有数字了,只有 R3C3 可以删除。
再看一个 SwordFish 的例子


蓝色的 7 是 Finned,让这个 SwordFish 的删除范围限定在 B3
再来一个 JellyFish


看鱼鳍和可以删除的部分
Sashimi Fish
刚我们说了Fish Finned,那这种结构是不是还能简化呢?当然是可以的,但这个鱼的结构就更加奇怪了,而且变化多端,先看一个标准版本


如盘面所示。这里有一个类似于 Fish Finned 的形状:Base 为 C28,Finned 位于 R4C8。但是又有点不一样的地方,在 Finned 宫内 X-Wing 的那只“腿”不见了,不过没关系。
根据 Finned 的推理方法,要么 Finned 成立,要么 X-Wing 成立。
现在 X-Wing 少了一个数字,我们来看看怎么推论。
假设 Finned R4C8 != 7,那么 R8C8 = 7,R6C2 = 7,R6C7 != 7
假设 Finned R4C8 = 7,那么 R6C7 != 7
所以红色的 7 一定可以删除
这种结构就是 Sashimi Fish
在看一个例子


R23C6 的 9 作为一个 Group 的 Finned,大家可以想一想。
在 X-Wing 的结构里面,无论是 Fish Finned 还是 Sashimi Fish 其实都可以用双强链的摩天楼来删数字,看过前面双强链的朋友可能觉得用摩天楼更加简单,但到 3 个数或者 4 个数字的时候,摩天楼就很难用上了。
来看 3 个数字的


还是一样的推论,Finned 成立或者 SwordFish 成立,Finned 只是把删除范围限定到了 Finned 所在的宫内的 Cover 集
看看 4 个数字


Base R1469{8},Cover  C1289{8},Finned R9C3{8},删除集限定在 B7 中的 Cover 集,也就是 R78C12
Franken Fish
前面我们讲了鱼的带鳍变形,其实它的形状也是可以变异的。
来看一张图


这张图还是一个标准的 SwordFish,只是移动了 SwordFish 的 Cover 集,最右边两列在同一个宫里面
我们再改动一下,变成下图


绿色部分是不是还能继续删除呢?
我们还是继续假设
无论 B3 中的 C7 任意一个 X 为真,还是 B3 中的 C8 任意一个 X 为真,还是 那么 R5 和 R8 剩下的 4 个 X 还是一个标准的 X-Wing,绿色部分都能删除。
B3 中 C7 和 C8 6 个格子必须要有 X,要没有那么 B3 就没有 X 了,不符合数独规则。
所以绿色部分的 X 还是可以删除的。
当然,这个结构也是可以简化的,最简形式如下图


这个的原理我相信你们自己也可以推出来的
还是看例子吧


Base = R34B9{1} Cover = C489{1},可以删除 C489 其他的 1
最后还有两个例子,大家自己揣摩一下。




例子的参考链接
Single Digit Patterns
[数独高级技巧] 鱼
最后广告时间
如果你是 iOS 系统,可以下载我做的 App 来训练这些技巧,专家难度一定会让你用上这些高级技巧的
直接下载

或者 Appstore 搜索 禅数独 下载



原文地址:https://zhuanlan.zhihu.com/p/66927995
楼主热帖
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册 微信登录 手机动态码快速登录

本版积分规则

关闭

官方推荐 上一条 /3 下一条

快速回复 返回列表 客服中心 搜索 官方QQ群 洽谈合作
快速回复返回顶部 返回列表