# X 区域致命定理

下面我们来看一下飞鱼里隐藏的一个和唯一矩形有关系的特征。

## X 区域是什么？ <a href="#what-is-an-x-region" id="what-is-an-x-region"></a>

<figure><img src="https://3269563042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBwg2o9WwhosLFTuqyR3w%2Fuploads%2FLq9m9INkdJ8pChjb7TN9%2Fimage.png?alt=media&#x26;token=74786057-b7c7-4beb-8cc0-1b714341a81a" alt="" width="375"><figcaption><p>X 区域</p></figcaption></figure>

如图所示。这是一个飞鱼结构，显然目标单元格里可以删除 `r7c9 <> 3` 的结论。不过我们这里不是打算说这个的。

请注意图中的 `b4578` 四个宫。我们把图中紫色标注的数字 1、2、4、7 这些明数取出，然后将这些明数和它影射的行列进行画线操作，其交点格 `r5689c1246` 这 16 个单元格被称为 **X 区域**（Region X）。

另外，X 区域选取的 16 个单元格一定选在了跟基准单元格完全看不见的地方。意思是说，`b12` 就不属于 X 区域的范畴里。这个定义很重要，因为稍后说明定理和证明需要利用到这两个余下的宫。

> 需要注意的是，图中 X 区域的明数 1、2、4、7 就是基准单元格里的候选数，和其数值完全一样的数字会被提取出来。可以发现，X 区域里全部的明数都是 1、2、4、7，这好像是巧合一般。其实在 X 区域里，是可以含有跟基准单元格里候选数数值不一样的数字的明数的。只是这个例子里只有 1、2、4、7 而已；另外，这里说的是“明数”，也就意味着，如果是你自己填进去的数字也符合其特征，不一定非得是提示数 1、2、4、7。稍后的内容里也不会因为它是提示数或不是提示数而有结论上的影响——结论都是可以形成的。

## X 致命定理和结论 <a href="#region-x-rule-and-its-conclusion" id="region-x-rule-and-its-conclusion"></a>

在飞鱼的世界里，我们有这么一个定理：

**在交叉单元格里，和 X 区域同在一个宫里的部分，除了 X 区域的 16 个单元格同行或同列的单元格以外，余下的格子（理应还有 6 个）要么是空格但不能含有跟基准单元格相同的候选数，要么是明数但不能是跟基准单元格相同的候选数数值的填数。接着，X 区域被划分为四个不同的宫（每宫有 4 个单元格）。当我们从 X 区域里提取出所有和基准单元格候选数数值上一样的明数后，如果某一个数字同时出现在了对角分布的两个宫里，我们就记录下来。如果有两个不同的数字** $$a$$ **和** $$b$$ **恰好均符合“在对角分布的两个宫里都出现”的情况，而且他们不同宫，则这两个数字** $$a$$ **和** $$b$$ **一定不会是基准单元格最终填入的数字组合。**

这个说起来比较晦涩，说大白话会好理解点。例如这个例子里，数字 7 的明数在 X 区域里的 `b48` 同时都出现，而 `b4` 和 `b8` 在 X 区域上来说就是对角分布的宫。而同样地，数字 2 和 4 也都符合在 `b57` 同时出现的情况，所以数字 2、4、7 符合前半部分的描述，于是我们把他们记录一下。

接着，我们发现，数字 7 出现在 `b48` 里，而数字 2 出现在 `b57` 里。从分布的角度上讲，数字 7 和数字 2 出现在了不同的宫之中。所以按照定理，基准单元格就一定不可能是关于 2 和 7 的数对。换言之，基准单元格有 2 就不能有 7，有 7 就不能有 2，但可以都没有（既不是 2 也不是 7 是可以的）。同理，4 因为也出现在 `b57` 之中，所以和 7 构成不同宫出现的分布状态，所以基准单元格也不能是 4 和 7 的数对。

因此，因为 `r12c7` 里，只要我们让 `r1c7` 填了 7 之后，那么 `r2c7` 就找不到合适的数字可填：

* 如果 `r2c7 = 2`，则 `r12c7` 构成 2 和 7 的数对，但刚才我们说他们不能同时出现，所以矛盾；
* 如果 `r2c7 = 4`，则 `r12c7` 构成 4 和 7 的数对，但刚才我们说他们不能同时出现，所以矛盾；
* 如果 `r2c7 = 7`，则 `r12c7` 同宫（或者说同列）都填 7，直接违背数独规则，所以也矛盾。

这样 `r2c7` 变得无数可填。因此，`r1c7 <> 7` 是这个飞鱼结构里，利用 X 区域所产生的结论。我们把这个定理称为 **X 区域致命定理**，简称 **X 致命定理**（Region-X Theorem）。

## X 致命定理的证明 <a href="#prove-of-this-theorem" id="prove-of-this-theorem"></a>

这个定理看起来非常奇怪。它利用的是对角分布的宫里的明数得到的结论，所以从候选数技巧层面来看，它非常晦涩，也很难想清楚它为什么居然是正确的。下面我们给予此定理的证明。因为我的软件画不出同在一个单元格里标注多种数字的图片，所以这里我用 Excel 做了几个示意图。下面按照证明次序和思路陈列每一步的内容。

在中国的数独圈子里，探长率先提出了关于此定理的证明思路。下面我们来看看探长是怎么一步一步得到这个定理成立的情况的。

{% stepper %}
{% step %}

### 构造初始条件 <a href="#step-1" id="step-1"></a>

<figure><img src="https://3269563042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBwg2o9WwhosLFTuqyR3w%2Fuploads%2FQ5DgjGFJDHV4Obk2gQUo%2F%E7%90%86%E8%AE%BA%E5%9B%BE%E8%AF%81%E6%98%8EX%E8%87%B4%E5%91%BD-1.png?alt=media&#x26;token=6adf0fa1-dbde-468f-bcdf-56db4df76be5" alt="" width="292"><figcaption><p>第一步的示意图</p></figcaption></figure>

第一步是构造初始条件。其中，黄色底色的 16 个单元格为 X 区域，其中包含 $$a$$ 和 $$b$$ 的明数并按规则安排到对角分布的宫上去；然后是基准单元格。这里我们照着原题的位置将基准单元格安排在 `r12c7` 上。假定它是四个候选数 $$a$$、$$b$$、$$c$$ 和 $$d$$，一共 4 种数字。当然基准单元格也可以只有 3 种数，也可以有 5 种数，这里只是取了和前面例子里相同的状态作为示意。

这里尤其别漏掉一点：灰色底色的格子是一些无关的单元格（不能有跟基准单元格相同数值的候选数，或者如果是明数就不能是跟基准单元格里一样的数）。这一点很重要。
{% endstep %}

{% step %}

### 假设基准单元格形成数对 <a href="#step-2" id="step-2"></a>

<figure><img src="https://3269563042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBwg2o9WwhosLFTuqyR3w%2Fuploads%2FUNGIaWs9nKhqaxe2V6FX%2F%E7%90%86%E8%AE%BA%E5%9B%BE%E8%AF%81%E6%98%8EX%E8%87%B4%E5%91%BD-2.png?alt=media&#x26;token=f429b58b-d7e9-488b-a74d-90ba2aa7e6db" alt="" width="299"><figcaption><p>第二步的示意图</p></figcaption></figure>

如图所示。为了证明有矛盾，那么我们强行让 `r12c7` 形成关于 $$a$$ 和 $$b$$ 的数对。这样，按行分布的交叉单元格会使得目标单元格 `r4c8` 和 `r7c9` 只能填 $$a$$ 和 $$b$$。
{% endstep %}

{% step %}

### 得到 r47 里的弱链关系 <a href="#step-3" id="step-3"></a>

<figure><img src="https://3269563042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBwg2o9WwhosLFTuqyR3w%2Fuploads%2FVdCt14iEZjGi7Wx5z5ud%2F%E7%90%86%E8%AE%BA%E5%9B%BE%E8%AF%81%E6%98%8EX%E8%87%B4%E5%91%BD-3.png?alt=media&#x26;token=bc29926d-b015-4c42-8d0a-c36f3de476b1" alt="" width="297"><figcaption><p>第三、四、五步的示意图</p></figcaption></figure>

顺着交叉单元格的方向，因为 `r4c8` 只能是 $$a$$ 或 $$b$$，所以显然交叉单元格 `r4c12` 和 `r4c45` 就不能让 $$a$$ 和 $$b$$ 同真（灰色是跟 $$a$$ 和 $$b$$ 无关的格子，所以排开之后就只有这四个位置了）。同理，`r7` 上也有类似的弱链关系，我们也给它串起来。图中的单实线表示的是弱链关系。
{% endstep %}

{% step %}

### 证明 r3c45(a) 和 r4c45(a) 不同真 <a href="#step-4" id="step-4"></a>

想要证明 `r3c45(a)` 和 `r4c45(a)` 不同真方法很简单：一旦他们同为真之后，`r89c45` 里明明有 $$a$$ 的明数，所以显然矛盾。所以，他们不同真。
{% endstep %}

{% step %}

### 证明 r3c45(a) 和 r4c45(a) 不同假 <a href="#step-5" id="step-5"></a>

相反，我们如果要证明他们不同假，反而比较难。这里要借用飞鱼结论形成倒过来得到。

因为飞鱼结论已然形成，所以初始定下来的 $$a$$ 就必须预先符合在交叉单元格里出现最多两次的约定（当然，$$b$$ 也是一样）。要想把 $$a$$ 安排在交叉单元格里出现最多两次，我们不得不让 $$a$$ 此时只能出现在 `r37c12` 之中，而且还不能是“最多两次”，而必须是“恰好两次”。为什么呢？因为飞鱼结论已经形成，目标单元格里一定有一个单元格是 $$a$$ 了。所以，交叉单元格里还必须拿出来两个 $$a$$ 才能恰好凑满三个 $$a$$（毕竟交叉单元格有三行嘛）。

但是，因为我们刚才要证明 `r3c45(a)` 和 `r4c45(a)` 同假会矛盾而强行让其同假了，所以 $$a$$ 要填两个的位置就只好落在了 `r37c12` 之中，毕竟 X 区域里还有 $$a$$ 的明数呢，它又会干掉一部分的后续位置。

而正巧，`b4` 里的 X 区域里有 $$a$$ 的明数。如果 `r37c12` 都是 $$a$$ 则显然矛盾：$$a$$ 放不下俩。所以，`r37c12` 又没办法填两个。刚才我们还说要必须填俩，现在又发现它不能填俩，所以矛盾。故 `r3c45(a)` 和 `r4c45(a)` 是不能同假的。

这里同理，我们还可以得到关于 $$b$$ 的填数结论。不过结论是对称的，所以我就不重复再说明一次了。
{% endstep %}

{% step %}

### 证明 r3c12 或 r3c45 是数对 <a href="#step-6" id="step-6"></a>

<figure><img src="https://3269563042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBwg2o9WwhosLFTuqyR3w%2Fuploads%2FMgTa5yokDARblR81ALhG%2F%E7%90%86%E8%AE%BA%E5%9B%BE%E8%AF%81%E6%98%8EX%E8%87%B4%E5%91%BD-4.png?alt=media&#x26;token=59ddae8d-9785-4ebf-acf0-98526e047fc2" alt="" width="296"><figcaption><p>第六步的示意图</p></figcaption></figure>

如图所示。其中，双实线是强链关系，单实线是弱链关系。一下子多了这么多强链和弱链关系，是不是有点懵？

没关系。我们先看橘色四个节点的“外环链路”。显然这个外环链路在前面的证明里是可以得到的，而红色节点的“内环链路”也可以得到。但是，现在两组链路是独立得到的，现在我们要让世界线收束，将他们并到一起。

我们显然可以知道，因为外环线路里 `r3c12(a)` 和 `r3c45(b)` 是整个外环线路的头尾，所以他们不同假。但是如果他们同真的话，会使得内环线路里的头尾 `r3c12(b)` 和 `r3c45(a)` 同假，违背内环线路两头不同假的规定。所以，`r3c12(a)` 和 `r3c45(b)` 只能一真一假；而内环线路影响到外环也是成立的，所以内环线路里 `r3c12(b)` 和 `r3c45(a)` 也是一真一假。

于是，这样两组一真一假的状态要同时满足，只有让 $$a$$ 和 $$b$$ 要么同时在 `r3c12` 里，要么同时在 `r3c45` 里。因为两端的数字互相是不相同的，还要让安排一真一假的填数模式，只有可能使 $$a$$ 和 $$b$$ 最终填数同宫才符合条件，也就是这里的 `r3c12` 同时 $$a$$ 或 $$b$$，或者 `r3c45` 同时 $$a$$ 或 $$b$$。于是我们还能有数对的结论。
{% endstep %}

{% step %}

### 得到矛盾 <a href="#step-7" id="step-7"></a>

我们利用刚才得到的数对随便拿一个举例。比如 `r3c12(ab)` 数对。`r3c45(ab)` 数对造成结论是同理的，所以就不用重复证明一遍完全一样的处理规则。

<figure><img src="https://3269563042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBwg2o9WwhosLFTuqyR3w%2Fuploads%2FClLZ2ohYWKUZlmnZIVrJ%2F%E7%90%86%E8%AE%BA%E5%9B%BE%E8%AF%81%E6%98%8EX%E8%87%B4%E5%91%BD-5.png?alt=media&#x26;token=2d40f8ea-67d8-4d7f-93dc-7a5f5ce2396b" alt="" width="299"><figcaption><p>第七步的示意图</p></figcaption></figure>

如图所示。借用第六步的图我们有外环线路（橘色数字）在 `r3c45` 和 `r7c45` 上的结论——$$b$$ 在这里面只能一真一假。因为 `r3c12` 是 $$a$$ 和 $$b$$ 的数对，所以 `r3c45` 显然都不能是 $$b$$，所以 `r7c45` 就必须是 $$b$$。但是，X 区域在 `b5` 里已经有 $$b$$ 的明数，而结合 `r7c45` 里的 $$b$$ 为真的结论，显然图中绿色的 `r12c45` 里就不可能有 $$b$$ 出现。同理，$$a$$ 也是如此。所以，`r12c45` 不可能有 $$a$$ 和 $$b$$。这里的不能是强约束，既不能有 $$a$$ 也不能有 $$b$$。

那么这么一看，`b2` 里 $$a$$ 和 $$b$$ 还剩下唯二的可填位置：`r12c6`。但是，`r12c6` 不能是 $$a$$ 和 $$b$$：因为它会和 `r12c7` 基准单元格构成关于 $$a$$ 和 $$b$$ 的唯一矩形的填数矛盾形式。所以，兜兜转转，我们最终得到了矛盾。
{% endstep %}
{% endstepper %}

最终，利用反证法，我们得到了 X 致命定理的结论可用性。

## 一些例子 <a href="#some-examples" id="some-examples"></a>

下面我们来看一些关于 X 致命定理的删数例子。

### 例子 1：同宫定理 <a href="#example-1" id="example-1"></a>

<figure><img src="https://3269563042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBwg2o9WwhosLFTuqyR3w%2Fuploads%2FpF8KgHvoCswl5vmOsgNE%2Fimage.png?alt=media&#x26;token=5d21d4b2-59ab-4fc6-8e17-4ab37137c20b" alt="" width="375"><figcaption><p>例子 1</p></figcaption></figure>

如图所示。先忽略 `r4c2` 的删数。这里可以删除 `r5c46 <> 1`，因为 X 区域里，1 和 3 这一对为对角宫分布，1 和 6 也是如此。所以，1 不能和 3 也不能和 6 在基准单元格里形成数对。

另外，早在 X 致命定理提出之前，探长和邱言哲二人提出了这个定理的雏形：“同宫定理”。所谓“同宫定理”指的是，当基准单元格只有三种数字的时候（例如这个例子就符合条件），如果在 X 区域里的明数安排下，有两种数字的所有明数填充位置处于两个同样的宫的时候，则这两个数字就一定是基准单元格的最终填数（即形成数对）。比如这个例子里，因为 3 和 6 都出现在 `b37` 里，所以同宫。故基准单元格 `r5c46` 里一定是 3 和 6 的数对。

当然，现在我们知道了，它其实是 X 致命定理的其中一种特殊情况：因为有一个数摆放在 X 区域的不同的两个宫里，所以它一定不能和这俩形成正确组合，所以删掉了这个数。

### 例子 2：也是同宫定理 <a href="#example-2" id="example-2"></a>

<figure><img src="https://3269563042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBwg2o9WwhosLFTuqyR3w%2Fuploads%2Fib9RHF4cDOYhL8RIs9BJ%2Fimage.png?alt=media&#x26;token=ffeec830-6008-4afb-8e16-2d2b88964ee2" alt="" width="375"><figcaption><p>例子 2</p></figcaption></figure>

如图所示。推理过程完全一样，就不重复说明了。

### 例子 3：略别扭的例子 <a href="#example-3" id="example-3"></a>

<figure><img src="https://3269563042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBwg2o9WwhosLFTuqyR3w%2Fuploads%2FRIW6HfaIcslythrViQrm%2Fimage.png?alt=media&#x26;token=bbd76857-47cd-490a-87bb-44a16eaf31f0" alt="" width="375"><figcaption><p>例子 3</p></figcaption></figure>

如图所示。这个例子可以删除 `r1c2(56)`。但是如果按照同宫定理的话，似乎这个定理在这个题里失效了。实际上也不是失效了，是因为数字 7 并未同时出现两次在对角分布的宫里。有一个 7 的明数在这个题里是放在了 `b7` 这个毫无关系的宫里去了。

但是在前面的 X 致命定理里我们并未对 `b47` 这两个毫无关系的宫有限制条件，所以即使包含有这样的数字出现，也不会影响结论的形成。如果你不放心的话，可以试试重新自己针对这个题推理一次看看能不能有矛盾出现。

总之，这个题的结论是，`r1c2 <> 56`。因为它是 5 或 6，`r1c2` 都会与之形成 5 和 6 的数对。但 5 和 6 形成了对角分布的状态，所以矛盾了。

### 例子 4：基准格有 4 种数字 <a href="#example-4" id="example-4"></a>

<figure><img src="https://3269563042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBwg2o9WwhosLFTuqyR3w%2Fuploads%2F4EkqxZUgwElqoI6cWpvi%2Fimage.png?alt=media&#x26;token=ced617b5-73c1-485c-ad7c-6041b28a4aa3" alt="" width="375"><figcaption><p>例子 4</p></figcaption></figure>

如图所示。这个例子就自己看了。这个题和例 3 差不多，也是基准单元格有一个数会出现在无关的宫里面。
