数独を数学風に書いてみる

2026年7月1日

親父殿がやっている数独を見たら、やたら難しかった。解くテクニックの解説サイトなどを見ると説き方の解説と例は出てくるが、実際に応用するのはなかなか難しい。沢山実例があれば応用できるようになるかな?いや、実例は星の数ほどあるので寧ろ形式化した法則で覚えた方が応用が効くのでは?と考え、数独の解法(定理?)を数学っぽく書いてみた。

定義

全セルの集合:\(X\)

ハウス(行・列・ブロック):\(H\subseteq X \)

数字\(n\)の入るセルの候補集合:\(S(n)= \lbrace x \in X | nがセルxに入る可能性あり \rbrace \)

ハウス毎の数字\(n\)の入るセルの候補集合:\(S_H(n)=H \cap S(n)\)

セル\(x\)に入る数字の候補集合:\(P_x= \lbrace n \in \lbrace 1, \dots ,9 \rbrace | x \in S(n) \rbrace \)

なお別途除外が明示されない限り候補集合は取りうる最大の集合で考えるものとします。

Naked Single

説明:

あるセルの数字の候補が一つしかないならば、

そのセルの数字は一意に決まる

形式表現:

あるセル\(x \in X \)について

\(| \lbrace n | x \in S(n) \rbrace | = 1\)ならば

\(P_x= \lbrace n \rbrace \)

Hidden Single

説明:

ハウス内でその数字の入りうるセルが一つしかないならば、

そのセルの数字は一意に決まる。

形式表現:

あるハウス\(H\)の数字\(n\)について

\(S_H(n)=\lbrace x \rbrace \)ならば

\(P_x= \lbrace n \rbrace \)

Naked Pair

説明:

あるハウスの2つのセルの数字の候補が同じ2つの数字のみならば、

そのハウスの他のセルがその2つの数字である可能性は無い。

形式表現:

あるハウス\(H\)のセル\(a,b \in H (a \ne b) \)について

\(P_a,P_b=\lbrace p,q \rbrace (p \ne q)\)ならば

\(\forall x \in H \setminus \lbrace a, b \rbrace : x \notin S(p), x \notin S(q) \)

Hidden Pair

説明:

あるハウスにおいて、2つの数字の入る可能性のあるセルが、同じ2つのセルのみならば、

その2つのセルに入る可能性のある数字はその2つの数字のみである。

形式表現:

あるハウス\(H\)と数字\(p,q (p\ne q)\)について

\(S_H(p)=S_H(q)=\lbrace a,b \rbrace (a \ne b) \)ならば

\(P_a = P_b = \lbrace p,q \rbrace \)

Box/Line Reduction

説明:

ハウスaである数字が現れる可能性のあるセルがハウスbとの交差部分のみとなる場合、交差部分以外のハウスbのセルにその数字が表れる可能性は無い。

形式表現:

あるハウス\(H_a,H_b, (H_a \cap H_b \ne \emptyset)\)について、

\(S_{H_a}(n) \subseteq H_a \cap H_b \)ならば、

\(\forall x \in H_b \setminus (H_a \cap H_b): x \notin S(n) \)

X-Wing

説明:

2つの行において、ある数字が現れる可能性のあるセルが2つでかつ共通の2列に出現する場合、その2列の他のセルからその数字を除外できる。※(行,列)ではなく(列,行)、(ボックス,行)、(ボックス,列)、(行,ボックス)、(列,ボックス)でも成立する。

形式表現:

あるハウス\(H_{a1},H_{a2}\)とハウス\(H_{b1},H_{b2} (H_a \cap H_b \ne \emptyset)\)について、

\(S_{H_{a1}}(n)= \lbrace x_1,y_1 \rbrace, S_{H_{a2}}(n)= \lbrace x_2,y_2 \rbrace \)

\(x_1,x_2 \in H_{b1}, y1,y2 \in H_{b2} \)

ならば

\(\forall z \in H_{b1} \setminus \lbrace x_1, x_2 \rbrace: z \notin S(n),  \forall z \in H_{b2} \setminus \lbrace y_1, y_2 \rbrace: z \notin S(n)\)

XY-Wing

説明:

言葉で説明するのは難しい。形式表現の方がわかりやすいかも。

形式表現:

\(x,a,b \in X, H_a, H_b \in H (H_a \ne H_b)\)について、

\(x,a \in H_a, x,b \in H_b,\)

\(P_x= \lbrace p,q \rbrace, P_a=\lbrace p,r \rbrace, P_b=\lbrace q,r \rbrace\)ならば

\(A=\bigcup_{H\ni a} H, B=\bigcup_{H\ni b}H\)

\(\forall y\in A \cap B : y \notin S(r)\)

Twin Trap(勝手に命名)

説明:

数独の難問で出てきた型。

例で描くとこう。

1       1,4  
  1,4   1    
  4     4  

これが↓になる。

1       1,4  
  1,4   1    
  4     4  

簡単そうなんだけど、見つけるのが難しかった。

形式表現:

それぞれ異なるハウス\(H_a,H_b,H_1,H_2,H_3 (H_1,H_2,H_3\cap H_a\ne \emptyset, H_1,H_2,H_3\cap H_b\ne \emptyset) \)があり、

\(a_1,a_2,a_3\in H_a, b_1,b_2,b_3\in H_b, a_1,b_1\in H_1, a_2,b_2\in H_2, a_3,b_3\in H_3\)

\(P_{H_a}(x)=\lbrace a_1,a_2 \rbrace, P_{H_b}(x)=\lbrace b_1,b_2 \rbrace, P_{H_a}(y)=\lbrace a_1,a_3 \rbrace, P_{H_b}(y)=\lbrace b_2,b_3 \rbrace\)

のとき、

\(P_{a_2}=\lbrace x \rbrace, P_{b_1}=\lbrace x \rbrace \)