> For the complete documentation index, see [llms.txt](https://sudoku.kazusa.tech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sudoku.kazusa.tech/construction/03-kraken-logic/01-reasoning-of-burr.md).

# 毛刺的基本推理

## 毛刺的概念 <a href="#concept-of-burr" id="concept-of-burr"></a>

<figure><img src="/files/g7Jy18m3INWil8xwI3Yk" alt="" width="375"><figcaption><p>毛刺数组</p></figcaption></figure>

如图所示。假设我们忽略 `r3c9(7)` 这个候选数，当它不存在的话，那么 `r3c789` 三个单元格将只有 2、5、6 三种候选数，构成显性三数组（严格来说是死锁三数组），于是，`b3` 和 `r3` 上其余位置的 2、5、6 均可删除，就像是图上这样的删数。

但是很明显我们不能这么做，因为 `r3c9(7)` 的客观存在导致我们无法将删数当成真的结果。这可怎么办呢？没事，我们就按鱼鳍的类似逻辑去思考这个数。

倘若它不存在（为假），则有数组删数；但如果它为真的话，那么我们不妨就用一下强制链的思维去看别的地方有没有结论。

<figure><img src="/files/lFjIjL1deHm78XtV2YdE" alt="" width="375"><figcaption><p>毛刺 XY-Wing</p></figcaption></figure>

然后，就真的被我们逮着了：如果 `r3c9(7)` 为真，则 `r6c9(7)` 为假，于是对于 `r34c8` 和 `r6c9` 三个单元格而言，XY-Wing 结构就成立了，删数是 `r23c9(6)`。

那么，结合两个配图我们可以看到，数组成立时候的删数和 XY-Wing 成立时候的删数均包含 `r2c9(6)`，因此，这个题的结论就是 `r2c9 <> 6` 了。

可以从这个例子里看到，我们稍微借助了一下鱼鳍的概念，将 `r3c9(7)` 这个候选数视为鱼鳍分情况讨论了一下，然后发现两种情况均可删除同样的位置，于是删数便成立。我们把这种鱼鳍的类似用法，放在强制链里推导的思维称为**毛刺**（Kraken Burr、Burr 或 Kraken Fin）。

## 以毛刺冠名的技巧不区分主次关系 <a href="#there-is-no-primary-and-secondary-relation-on-naming-of-kraken-patterns" id="there-is-no-primary-and-secondary-relation-on-naming-of-kraken-patterns"></a>

对于这个用法而言，`r3c9(7)` 是作为数组的毛刺存在。不过我们也可以把这个链倒过来看：从 XY-Wing 出发，发现 `r6c9(7)` 是结构的毛刺。它为真的时候会引发 `r3c9(7)` 为假，于是数组成立。从这个视角里可以看出，毛刺的使用是不怎么区分先后关系的，它更像是链里正反都可以推理的效果，所以毛刺结构具体跟什么技巧所绑定命名，其实都可以。比如这个题你叫它毛刺数组是可以的；你叫它毛刺 XY-Wing 也是可以的。

不知道你还记不记得，早在链里我们就用过了毛刺的说法——毛刺数组链。在那个时候，它因为刚好是数组里多了那么一坨的东西，本身因为不影响链的直推逻辑，所以毛刺在那个时候还只是一个名称而已；对于现在，毛刺可能就不那么直观了，它不一定能作为一个单独的链在使用，它必须讨论真假性进行删数的寻找。

## 多个毛刺 <a href="#multiple-burrs" id="multiple-burrs"></a>

我们再来看一个例子。

<figure><img src="/files/G4jWXacKBpn1GMsd8oq1" alt="" width="375"><figcaption><p>毛刺拓展矩形</p></figcaption></figure>

如图所示，这是一个毛刺拓展矩形，有三个毛刺：`r23c1(9)` 和 `r3c4(9)`。我们直接讨论他们的真假性。如果三个毛刺全为假，则会有图上的这样的画法。链表示如下：

```
4r3c6=(4-1)r23c4=1r3c8-(1=9)r3c9
```

这里用到了一个区块弱链关系 `(4-1)r23c4`，原因是同真之后，数字 2 无法成功填入 `b2` 导致矛盾。所以这是一个很正常的不连续环，记住这是当毛刺为假时构成的不连续环。

那么，三个毛刺如果至少有一个为真呢？我们也有链可以用，不过我们稍微需要把毛刺拆一下，分个组。很显然 `r3c4(9)` 和删数 `r3c6(9)` 同在一个宫里，所以它为真的情况可以直接视为鱼鳍直接删数，就不用参与链的讨论；当然，`r3c1(9)` 因为和删数同行，所以也可以不考虑。但是，左边的 `r2c1(9)` 就不行了，这个确实跟删数没有直接关系。

那么我们不妨就这么分组。如果 `r3c14(9)` 这两个毛刺为假，而 `r2c1(9)` 为真时，我们有这个强制链：

<figure><img src="/files/NMdhlIZxTFnEE2VwvdIc" alt="" width="375"><figcaption><p>毛刺 r2c1(9) 为真的讨论</p></figcaption></figure>

如图所示。我们有这么一个强制链。假设 `r2c1(9)` 为真时，可以得到 `r46c1(9)` 为假的逻辑。所以这两个单元格会构成关于 4 和 5 的显性数对。为了确保 `r46c16(45)` 不会出现唯一矩形的矛盾，由于 `r46c6(5)` 是共轭对，所以必须让 `r3c6(4)` 此时为真，以规避数字 4 也为共轭对直接出现矛盾。所以可以得到 `r3c6(4)` 为真的结果。

也就是说，如果 `r2c1(9)` 毛刺为真，我们可以得到 `r3c6(4)` 为真的结论，这恰好也可以删除 `r3c6(9)`。

然后就还剩下一种情况了，即 `r3c14(9)` 这两个毛刺至少有一个为真。这两个的话，因为刚好和 `r3c6(9)` 删数同在一个行里，所以它俩但凡有一个为真都可以直接删。

所以，我们经过三轮的讨论，最终可以得到 `r3c6 <> 9` 的结论。
