惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
腾讯CDC
G
Google Developers Blog
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
有赞技术团队
有赞技术团队
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
美团技术团队
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志

丘卡饮品店

小马入坑的东扯西扯 网络上的物是人非 数独恶魔城——精雕细琢的谜题大作 tee 心协力,tee 乐无穷——DDNet 入坑回忆 游戏推荐:图灵完备 「幻想の杂谈」放置游戏,真的“放置”吗? 找实习的心路经历 我与空竹的故事 这几年折腾博客的总结 本站 CDN 被盗刷 高性能计算课程作业 华为软件精英挑战赛感想 时间与陪伴 博客今后的方向 游戏推荐:Screeps QQ 机器人搭建体验 关于最近的一些事情 计算思维 记一次博客迁移历程 选择
数独笔记:XYZ 环
Zerol Acqua · 2025-11-07 · via 丘卡饮品店

发表于|更新于|杂七杂八

|总字数:978|阅读时长:3分钟|浏览量:

这篇笔记源于小向动态链中关于动态环部分的讲解:动态环的删数分析。动态环由于存在分支条件,因此并不是所有的弱链都可以进行删数的。所以动态环分为全环和半环,分别对应全部弱链/部分弱链能进行删数。具体怎么判断一个动态环是全环还是半环,可以通过删数分析得到。当然这篇笔记的主角并不是删数分析,也不是讲是全环的绽放,而是既有可能是全环也有可能是半环的 XYZ 环。

首先是 XYZ 半环,如图所示 XYZ 半环只有 XYZ-Wing 的两个分支(不是动态链分支,而是 XYZ -Wing 讨论拐点不同可能性的那俩分支)能删数,删数分别是 XY 两个数(XYZ-Wing 中除了 Z 之外的那俩)。XYZ 半环的特征是在 XYZ-Wing 的结构上,多了一个强链关系连接到 XYZ-Wing 两端分支的 Z (XYZ-Wing 结构中交集删除的那个数)上。

下图中,Z 为 5,X 和 Y 为 1 和 7

XYZ 半环的特征和删数

然后,这部分才是笔记的重点。既然 XYZ 半环是动态环,那怎么看出来它是动态环?看链时,Z(即 XYZ-Wing 中交集删的那个数)不是做为动态环假设分支的起点,而是假设后一个分支。即讨论起点是 X/Y,分叉是 Y/X 和 Z。它的环主体是在同一行或同一列上(只涉及两个单元格),且有两种看环的视角。

下图中,Z 为 5,X 和 Y 为 1 和 7

[{"url":"https://cdn.zerolacqua.top/images/blogs/sudoku-notes-xyz-ring/2.png","alt":"XYZ 半环结构 1","title":""},{"url":"https://cdn.zerolacqua.top/images/blogs/sudoku-notes-xyz-ring/3.png","alt":"XYZ 半环结构 2","title":""}]

左图视角,动态分支在 r3c6 分开,在 r9c6 合并,尤里卡记号如下:

1r3c6:
=7r3c6-(7=5)r3c2-5r8c2=5r9c1
=5r3c6
-(5=1)r9c6-1r3c6

右图视角,动态分支在 r3c6 分开,在 r3c2 合并,尤里卡记号如下:

7r3c6:
=1r3c6-(1=5)r9c6-5r9c1=5r8c2
=5r3c6
-(5=7)r3c2-7r3c6:

形状确实很怪异,而小向的教程中没画出链结构硬控了我好一段时间。有意思的是这个 XYZ 半环有两种看环的视角,每个视角下,环主体刚好在 XYZ-Wing 两个分支的其中一个上,所以不考虑删数分析只看主体上的弱链删数的话,这两个视角刚好各对一个 XYZ-Wing 分支进行了删数(毕竟这个结构是对称的,XY 这两个数逻辑上是等价的,X 有动态环视角,那 Y 也一定有动态环视角)。删数的结果也恰好说明了,即使是半环,也不一定只有环主体上的(非动态部分)弱链才能删数。

接下来 XYZ 全环就好说了,就不放尤里卡记号了。如图所示 XYZ 全环下所有弱链都能进行删数。特征很明显,XYZ-Wing 加上一个强链关系,且强链关系除了像半环一样,连接到 XYZ-Wing 分支两端的 Z (XYZ-Wing 结构中交集删除的那个数)中。同时,强链关系还连接了 XYZ-Wing 的拐点和分支端点上的 Z。这里给出 XYZ 全环的样子,它虽然是动态环,但弱链确实都可以删数。关于全环的讲解,小向的教程已经说得很清楚了,我就不多赘述了。

下图中,Z 为 2,X 和 Y 为 5 和 7

[{"url":"https://cdn.zerolacqua.top/images/blogs/sudoku-notes-xyz-ring/4.png","alt":"XYZ 全环的观察和删数","title":""},{"url":"https://cdn.zerolacqua.top/images/blogs/sudoku-notes-xyz-ring/5.png","alt":"XYZ 全环结构","title":""}]

以上便是个人的一点小小心得,如有错漏请多指教!本文配图由小向的 Sudoku Studio 生成。