高级 约 9 分钟
三格,各两个候选,换一个排除
枢轴说不出是哪一翼开火。它只保证一定有一翼开火,而这已经足够清掉一格。
一句话版本
XY-Wing 是三格。一格是枢轴,恰好两个候选。另外两格是翼,各恰好两个候选,各与枢轴共享一个,并且彼此之间共享另一个。
不管枢轴最后是哪个值,总有一翼被逼成那个共享值。所以任何同时看得见两翼的格子,都不能是那个值。
形状
把候选命名,结构就看得见了。设枢轴是「X、Y」,一翼「X、Z」,另一翼「Y、Z」。
- 枢轴:「X、Y」
- 甲翼:「X、Z」——看得见枢轴
- 乙翼:「Y、Z」——看得见枢轴
- 两翼共享 Z。
- 任何同时看得见两翼的格子,失去 Z。
X 和 Y 是枢轴的两条路。Z 是两翼都有、而枢轴两个格位都没有的那个数字。这个不对称就是整个图形:Z 是两翼唯一都能装的数字,而任何一翼都不能在装 Z 的同时再装对方那个 X 或 Y。
读起来条件不少——确实不少,这也是 XY-Wing 容易被漏掉的原因。但每一条都可核对,而核对的成本是每个候选枢轴十五秒。
为什么成立
枢轴只有两个值,所以只有两种情况。
- 情况一:枢轴是 X。 那么甲翼「X、Z」不能是 X——它和枢轴共用单元。所以甲翼是 Z。
- 情况二:枢轴是 Y。 那么乙翼「Y、Z」不能是 Y。所以乙翼是 Z。
两种情况里,总有一翼是 Z。你永远不知道是哪一翼,也不需要知道。重要的是至少有一翼是,所以不管怎样,Z 都会出现在两翼这个区域里。
现在取一格同时看得见两翼的格子。如果它填 Z,两翼就都被 Z 挡住——但必有一翼是 Z。矛盾。所以那一格不能是 Z。
这是本站第一个结论关于「或」而不是关于某一格的技巧。这就是它感觉不一样的原因:你在两个可能性之间推理,而两个都不需要被解决。
真实盘面
三格,候选表罕见地整齐:
- R1C5 写着「5、6」——枢轴。
- R2C5 写着「6、7」——一翼,与枢轴共享 6。
- R3C6 写着「5、7」——另一翼,与枢轴共享 5。
- 两翼都有 7,而枢轴两个格位都没有 7。
把两种情况走一遍:
- 如果 R1C5 是 5,那么 R3C6——它只能填 5 或 7,又和枢轴同宫——不能是 5。所以 R3C6 是 7。
- 如果 R1C5 是 6,那么 R2C5——它只能填 6 或 7,又和枢轴同宫——不能是 6。所以 R2C5 是 7。
不管哪种,7 落在两翼之一。现在看 R2C6,它写着「4、6、7、8」。它与 R2C5 同行、与 R3C6 同列,所以两翼都看得见。如果它是 7,两翼就都不能是——但必有一翼是。所以 R2C6 的 7 被删掉。
三格加一个两情况论证,换一个排除。这就是全部收益,而在卡死的盘面上它常常是决定性的那一步。
怎么扫
XY-Wing 是找枢轴找出来的,而找法很机械。
- 收集所有两候选的格子。 只有它们能当枢轴,一张难盘上通常也就那么几个。
- 对每个枢轴「X、Y」,找它的两翼。 在共用单元里找一格写着「X、Z」,再找另一格写着「Y、Z」,Z 必须是同一个。
- 确认两翼都看得见枢轴。 各共用一个单元就够了——行、列或宫。
- 找看得见两翼的 Z 格子。 对每个含 Z 的格子,问它是否与两翼都共用单元。那些就是要删的。
- 删之前验一遍。 最常见的假象是「只看得见一翼」。一翼什么都证明不了。
一个好用的优先级:枢轴的两个候选在盘面上越稀少,能删的格子越多,因为带 Z 的格子会更少。如果枢轴是「2、8」而 8 快做完了,这个翼通常能开火。
陷阱
两翼看不见枢轴。 两个完美的「X、Z」和「Y、Z」格子,隔了大半个盘面和枢轴遥遥相望,什么也构不成。逼迫只能通过共用单元传递。
Z 不一致。 枢轴「5、6」,两翼「5、7」和「6、8」。没有共同的 Z,就没有翼——只是三格各有两候选。
从只看得见一翼的格子里删。 只看见甲翼就删 Z,没有依据:也许是乙翼拿着 Z,那一格就是自由的。排除需要两翼都在视野里。
跟 XYZ-Wing 搞混。 如果枢轴有三个候选,那是另一个图形,排除范围更窄——XYZ-Wing,不是 XY-Wing。多出来的那个候选会改变受影响的范围。
用在哪
XY-Wing 住在这样一个区间:数对、三数组、宫线互斥都空手了,但题目还没到靠猜的地步。它在出版的中高难度题里够常见,解数独的人迟早要用;在简单题里够罕见,早学是浪费。
它也是整个「翼」家族的门。两情况论证一旦顺手,XYZ-Wing和摩天楼就只是同一步的变体,不是新东西。
常见疑问
什么是 XY-Wing?
三格:一个枢轴带两个候选,两翼各与枢轴共享一个候选,并且两翼之间再共享另一个。不管枢轴取哪个值,必有一翼被逼成那个共享值。
XY-Wing 和 X-Wing 有什么区别?
X-Wing 是一个数字被锁在四格矩形里。XY-Wing 是三个不同数字、三格,只删一个候选。名字像,逻辑毫无关系。
两翼之间需要互相看见吗?
不需要。每一翼都要看见枢轴;但它们只需要同时被「你要删的那一格」看见——那一格才是连接点。
XY-Wing 会直接填出数字吗?
不会。它从同时看得见两翼的格子里删掉一个候选。填数(如果有)来自删完之后剩下的东西。