> 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/deadly-pattern-theory/10-deadly-pattern-in-rank-theory/02-hidden-deadly-pattern.md).

# 隐性致命结构

前面的内容里我们提到了致命结构的矛盾论证，在秩理论里是需要按强区域严格划分的。下面我们继续深入探讨这一点。

## 致命结构的矛盾和强区域的关系 <a href="#relations-between-proving-of-deadly-pattern-and-truths" id="relations-between-proving-of-deadly-pattern-and-truths"></a>

上一篇内容里，我们提到了致命结构带有 9 个强区域，却只有 4 个弱区域的例子。

<figure><img src="/files/LUVlTYsWMLqpaZNEWAnw" alt="" width="375"><figcaption><p>上一篇内容的例子</p></figcaption></figure>

如图所示。在此例子里，我们删掉的是 `r1c2(9)`，利用的是两头 9 得到的删数。我们知道，它嵌入链里的时候，可以使用虚拟强区域的方式直接将 `r4c1(5)` 和 `r6c9(4)` 搭起来。但是，我们也提供了原始的画法：

<figure><img src="/files/P5YgmWuMfjjyZx7lee1Q" alt="" width="375"><figcaption><p>上面那个例子，原画法</p></figcaption></figure>

如图所示。可以从图里看出，我们将唯一环的 6 个单元格全都标了单元格强区域，但是没有标任何的弱区域，这个结构似乎就可以得到删数了。这是咋来的呢？

我们直接说过，秩理论的底层其实也是简易的排列组合，将合理的填法找出，并取出所有填法下都能得到的为真或为假的数字，作为结构的结论。

但是，强区域只要是非虚拟的，那么它必然不可能允许数字往里填两个及以上的情况——这显然不可能。所以我们会自然认为，有没有它似乎也无所谓，因为他们客观成立。但从枚举的角度来说，它会作为对此区域的数字的范围划分进行约束。如果不指定的话，它客观存在不假，但枚举会迷失方向（我不知道要枚举哪些位置）。

所以，我们需要有如此的指定。这是 XSudo 对秩理论的“公式化”处理设定：指定结构范围 → 确定排列情况 → 找结论。

知道这一点之后，我们不难知道，它为什么需要这些位置了：因为它是唯一环的排列范围，所以得有他们。

## 显隐性视角在秩理论里的设定 <a href="#rules-of-naked-and-hidden-views-in-rank-theory" id="rules-of-naked-and-hidden-views-in-rank-theory"></a>

什么样子的结构是带显性的，而什么样的结构是带隐性的呢？其实很简单：

* **显性视角：强区域全是单元格，而弱区域全是行、列、宫；**
* **隐性视角：强区域全是行、列、宫，而弱区域全是单元格。**

如果你不能理解如此的设定，你可以将显隐性数组用秩理论来重新描述一下，你就懂了。

<figure><img src="/files/rFauBUxI4jVNYHTZTY5o" alt="" width="375"><figcaption><p>显性三数组，秩理论视角</p></figcaption></figure>

如图所示。显然这是显性三数组。可以看到，秩理论里，显性三数组的强区域设定为 `5n268` 三个单元格上。

<figure><img src="/files/mRHzR4KlfiGbqgqnLfZm" alt="" width="375"><figcaption><p>隐性三数组，秩理论视角</p></figcaption></figure>

如图所示。可以看到，隐性三数组刚好就是把强区域表示为 `567r5`。

是不是很简单？不难按此定义，我们可以得到众多结构的显隐性划分：鱼是隐性的，伪数组是显性的，烟花数组是隐性的，多米诺环是显性的，等等。

## 隐性致命结构的基本推理 <a href="#reasoning-of-hidden-deadly-pattern" id="reasoning-of-hidden-deadly-pattern"></a>

有了这样的定义后，我们就可以看看，隐性致命结构是什么东西。

<figure><img src="/files/TsGAOQMvmDAwkqz6X6T8" alt="" width="375"><figcaption><p>隐性致命结构</p></figcaption></figure>

如图所示。请注意 `r359` 这三行。除了 `r9` 里可以多填一个 9 在 `r9c3` 外（或者图中也标了 `b9` 也是如此），8 和 9 都必须填在 `r359c789` 这 9 个单元格里。

这 9 个单元格里，虽然 8 和 9 可以任意排列，但不难知道，怎么填都会形成致命结构，要么是唯一矩形，要么是唯一环，不存在其他情况。所以，这个结构很容易得到它是致命的。

所以，唯一的出路是让 9 填在能避免出现矛盾的点位上。哪里呢？`r9c3` 或是 `r7c8` 了。所以，`r7c8 = 9` 和 `r9c3 = 9` 是这个题的结论。这两个结论都可以得到。

我们就把这种结构称为**隐性致命结构**（Hidden Deadly Pattern），即带有隐性视角的（也就是强区域用的是行列宫强区域而非单元格的）致命结构。

## 部分隐性致命结构 <a href="#partial-hidden-deadly-pattern" id="partial-hidden-deadly-pattern"></a>

有些时候，要达成全套隐性或显性是非常“看运气”的，毕竟这样的结构得看题目有构成这样的结构的机会。所以我们时不时会找一些显性和隐性搭配的致命结构。

下面我们来看一个显隐性搭配的情况。

### 例子 1：拿致命结构构造链 <a href="#example-1" id="example-1"></a>

<figure><img src="/files/DG5JB8sR5lY7oB5FMzyw" alt="" width="375"><figcaption><p>部分隐性致命结构</p></figcaption></figure>

如图所示。这个题如果只看黑色的候选数，那么他们是一个致命结构（包括 `r4c56(2)` 这俩自噬删数也在内）。

它怎么致命的呢？这里我们要用下传递。首先，我们先看 `b8`。`b8` 里数字 3 只有 `r9c45` 可填，于是我们不难发现，4 和 7 在结构的 `r79c45` 的其中三个单元格里来回变动。换言之，这四个单元格因为只有三处单元格填 2、4、7，所以最终 4 和 7 的摆放位置只有三种：

* 4 和 7 横放——矛盾，因为 `r79c1` 没办法填数；
* 4 和 7 竖放——矛盾，因为会配合 `r79c1` 形成唯一矩形；
* 4 和 7 斜放——看起来可以？

似乎斜放可以。但是斜放真的可以吗？其实也是不行的。为什么呢？看到这个 2 了吗？为什么 `r7c45(2)` 也被涂黑了呢？因为它会作为致命结构的一部分参与传递。不过，这里用传递说起来会非常晦涩，这里我们还是用稍微通俗的方式来解释它。

因为 2 也会参与结构的一部分，所以对于 `b8` 而言，其实是 2、4、7 三种数字在参与排列。因为我们已经知晓 4 和 7 只能斜着放，所以 2 必然会和 4 或者 7 的其中一个数同处于一个列上。这个“同列”指的是，对于 `r79c4` 这两个格子同列，或者是 `r79c5` 这两个格子同列，这两组单元格里，其中必然有一个是要么构成 2、4 数对，要么构成 2、7 数对，这个意思。

要论证排列均是矛盾的，我们只需要结合上面余下的 5 个单元格 `r3c56` 和 `r4c456` 里的 2 和 4 的排列即可。简单列举一下情况：

* 2 和 4 放 `r79c4` 里——`r34c56` 构成 2 和 4 的唯一矩形导致矛盾；
* 2 和 4 放 `r79c5` 里——`r3c5` 无法正常填数（这个格子就两个候选数 2 和 4），矛盾；
* 2 和 7 放 `r79c4` 里——因为 4 和 7 只能斜放，所以 4 必然在 2 边上，即 2 和 4 就只能横放。此时结合 `r3c56` 和 `r4c456` 就可以得到 2 和 4 怎么排列都会要么唯一矩形要么唯一环，导致矛盾；
* 2 和 7 放 `r79c5` 里——因为 4 和 7 只能斜放，所以 4 必然在 2 边上，即 2 和 4 就只能横放。和放 `r79c4` 形成的效果趋同，所以最终也可得到矛盾。

所以，这一大坨黑色的候选数集合会构成一个致命结构。然后，我们利用这个致命结构可以构造一条强链关系：`2r4c1 == 1r7c4`。然后，删数 `r7c7 <> 1` 就可以通过链得到删数。

那么，`r4c56(2)` 是怎么删的呢？这里可以用下毛刺的思路。我们把 `r7c4(1)` 视为毛刺讨论两边的情况。

* 如果 `r7c4(1)` 为真，则根据 `r7c45(2)` 共轭对（或者强链关系，无所谓了）可得 `r7c5 = 2`；然后由于 `r3c56` 是数对，所以 `r3c6 = 2`。所以此时 `r4c56 <> 2` 成立；
* 如果 `r7c4(1)` 为假，则根据刚才构造的强链可得 `r4c1(2)` 为真，所以此时也有 `r4c56 <> 2` 成立。

我们把有隐性的特征，但不是完美的隐性致命结构的致命结构称为**部分隐性致命结构**（Partial Hidden Deadly Pattern）。当然，你也可以叫它“部分显性致命结构”。不过因为显性致命结构是我们通过“先入为主”先学到的，所以一般不在致命结构为显性的时候强调它是显性的致命结构，因此这个说法几乎不用。

### 例子 2：超级复杂的致命结构 <a href="#example-2" id="example-2"></a>

我们再来看一个例子。

<figure><img src="/files/J3dYhiXdrRXdqSKcNGNf" alt="" width="375"><figcaption><p>部分隐性致命结构，另一个例子</p></figcaption></figure>

如图所示。这个题的致命结构非常复杂。此题需要针对 5、6 一对和 7、8 一对分成两组数字来分析。

不难发现，`b147` 这里非常混乱，不过好在 `b7` 的 5 和 6 只能横着放，所以讨论的情况会少一些。因为 `b7` 里 5 和 6 只能横着放，它限制了 5 和 6 同时摆一排的情况，所以 5 和 6 只能在 `b7` 里竖放或斜放。

先看竖放的。如果竖放的话，那么 7 和 8 在 `b7` 里也只能竖放。所以影响到 `b14` 之后，`b14` 里的 5 和 6 以及 7 和 8 也均只能竖放。对于 `b1` 而言，因为 5 和 6 竖放，所以配合 `b2` 可以传递出一个横放的 5 和 6 的数对（可以把它放在 `b7`）。同理，`b4` 因为是竖放的，所以可以配合 `b6` 传递出一个竖放的 1 和 7 的数对（可以把它放在 `b4`）。然后，你就会发现这个余下的部分是一个四数探长致命结构，所以矛盾了。

那么就只剩下斜放了。对于 `b7` 而言，斜放 5 和 6 和斜放 7 和 8 随便讨论哪个都行，而且怎么斜着放都行，因为这里 7 和 8 是当成一起来看的。所以，我们只需要讨论一个情况就行。

比如我们把 `r7c2` 放上 5，把 `r9c3` 放上 6（或者换过来，无所谓）。因为它是斜放的，所以它会带着 `b1` 里的 5 和 6 也斜放。要稍微注意的是，本身 `b1` 里的 5 和 6 还可以横着放的，但横放 5 和 6 会造成 `b2` 里的两个单元格的其一无法填数，所以只能斜放。虽然结果上只能斜放，但别漏掉这个情况忘了讨论了。

这样斜放之后，因为 `b2` 格子本身就是斜着摆的，所以最终 `b5` 里 5 和 6 只能斜放，为什么呢？因为我们这个时候要看 7 和 8 了。7 和 8 在 `b7` 里因为 5 和 6 只能斜放的关系，它俩现在也只能斜放。那么映射到 `b4` 里，7 和 8 的位置也具备横放和斜放两种情况。但很显然，横放会造成 `r5` 里余下三个单元格 `r5c568` 无法填数，或者是 `r6` 里的余下三个单元格 `r6c568` 无法填数（因为 7 和 8 都被用掉了，余下的数只有两种，填三个格子是填不满的），所以 `b4` 里的 7 和 8 也只能斜放。于是，7 和 8 在 `r56c568` 这 6 个单元格里根本不存在横放和竖放的情况。因为你要在 `b5` 里放 1、5、6、7 四种数字，其中 1 在 `r56c6` 里填一个，7 和 8 又会受到 `b4` 斜放的影响，所以合理的填法就只有 5 和 6 斜放了。

也就是说，在这种情况下，一旦 5 和 6 在 `b7` 被固定斜放的情况后，`b12` 里的 5 和 6，以及 `b5` 的 1、5、6、7 数组和 `b6` 的 1、8 数对都会被固定下来。此时，能活动的只有 `b4` 和 `b7` 的 7 和 8 了。其中，`b4` 因为是隐性视角，所以是位置活动；而 `b7` 里余下两个单元格必然斜放，所以是显性视角（单元格内 7 和 8 数字交换）。

很显然，变换 `b4` 和 `b7` 的此时的部分是不影响盘面余下空格的，所以就算大部分数字都固定，这几个数不相同也会造成两种不同的填法，而且不影响行列宫的任意一处位置，所以它仍然是可以造成矛盾的。需要提一嘴的是，这里一旦固定了之后（比如最开始说的 `r7c2` 填 5，`r9c3` 填 6），我们会发现 `b4` 里 8 只能横着换位置，7 也只能横着换位置，不存在竖着变的情况了，因为此时 `b7` 余下两个摆 7 和 8 的位置是显性状态，你一旦让 `b4` 竖着放了 `b7` 会填不了数字造成直接矛盾。

所以，这个结构通过简单的传递过程，搭配穷举的思路，是可以得到它是致命的。所以，本题的结论是 `r6c8 <> 18`。

至此，我们就把隐性致命结构和部分隐性致命结构讲完了。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://sudoku.kazusa.tech/deadly-pattern-theory/10-deadly-pattern-in-rank-theory/02-hidden-deadly-pattern.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
