数独パズルの難易度判定
— 解法ロジックを用いた数値化の提案 —
土出 智也*1・ 真貝 寿明*2
情報科学部 情報システム学科
(
2011
年5
月24
日投稿)Difficulty Levels of SUDOKU
– Proposals of
D-Score based on Solving Logics –by
Tomoya DODE and Hisa-aki SHINKAI
Department of Information Systems, Faculty of Information Science and Technology
Abstract
SUDOKU
(or
Number-Place) is one of the popular grid-puzzles today over the world. We propose a“score” which represents difficulty levels of each
SUDOKUpuzzle matching with puzzlers’ experi- ences. We first categorize the logics for solving
SUDOKU, and determine the order of applicabilityof them examining over 1600 puzzles. We then define the difficulty score (D-score) as the total iteration numbers of searching solutions or sweeping candidate numbers in each columns, rows, and blocks according to the order of the logics. Comparing to the previously proposed difficulty indices (like the counting method of blank-cells, or like the “SUDOKU entropy” which uses candidate numbers of each blank-cells), our
D-score corresponds to every steps of solving processes, thus itenables us to evaluate realistic difficulty levels.
*3キーワード :
数独パズル,
ロジック,難易度Keyword:
Sudoku puzzle, Logic, Difficulty levels
*1現 兵庫県養父市立大屋中学校.本稿は,土出の卒業研究論文(2011年)をもとにしている.
*3大阪工業大学紀要 投稿原稿
数独(あるいはナンバープレース)は世界的にも ブームになっているペンシルパズルである.本稿で は,数独の難易度を表す「スコア」を提案する.我々 は,あくまでも人間が解く場合の難易度を想定し,ま ず,数独パズルの解法ロジックを分類し,それらの汎 用性に順位をつけた.そして,各パズル問題に対する 難易度を,そのロジック順に解くときの処理数をカウ ントすることにして,その総和を難易度「スコア(D− スコア)」として定義した.これまでに,パズル問題 の空きマス数や,空きマスに入る候補数字数を使う数 独パズルの難易度判定方法も提案されているが,初期 盤面での情報を用いるこれらより,現実に近い判定が できると考えられる.
1 予備知識
1.1 数独, SUDOKU ,ナンバープレイス
本稿で扱う数独は3×3のブロックで区切られた 9×9のマスで構成され,ヒントの数字を頼りにマス の中に 1から9の数字を重複なく当てはめるパズル である. 数独 という名前は,『問題には一桁の数字 しか使わない』『数字は独身に限る』という理由で付 けられた*4.ナンバープレースやナンプレの名でも知 られ,現在では専門雑誌はもちろん,ポケットサイズ の書籍や携帯ゲーム機・携帯電話のアプリなどでも数 独を楽しむことができる.
数独の問題例を図1に示す.ルールはいたってシ ンプルで,次の3点だけである*5.
1. ヨコ列のどの列にも1∼9の数字が1つず つ入る
2. タテ列のどの列にも1∼9の数字が1つず つ入る
3. 太線で囲まれた3×3のどのブロックにも,
1∼9の数字が1つずつ入る
*4アメリカのパズルマガジンに掲載されていたナンバー プレイスというパズルを,(株)ニコリの鍛冶真起氏 が日本に持ち帰り,ニコリが発行しているパズル雑誌
『月刊ニコリスト』1984年4月号で掲載したのが始 まりである.国内では「数独」はニコリ社の登録商標 であり,他社は「ナンバープレース」と呼ぶ.世界で
は「SUDOKU」として親しまれている.
*5この他に,2本の対角線にも1∼9を1つずつ入れ なければならない問題や,複数の盤面が重なった問題 などさまざまなバリエーションが存在するが,本稿で は対象外とする.
市販されている雑誌や書籍に掲載されている各パ ズル問題には,簡単なものから複雑難解なものまであ り,「初級・中級・上級」とか「Easy, Hard, Spicy」な どいろいろな呼び名で難易度が示されている(これら を本稿では公称難易度と呼ぶ).数独の解法も「基本 テクニック」と呼ばれるものから「高級」とされるも のまで,さまざまなものが存在する.しかし,公称難 易度は,パズル作者の経験によることが多いようで,
基本的な解き方を用いて問題を解いた場合,簡単とさ れる難易度の問題はもちろん解けるが,中級とされる 問題でも時間さえかければ解けてしまうものも多く存 在するようだ.
図1 数独の問題例.[文献 [8] の Question 001,UltraEasyとされるレベル]
Fig.1 Sample of SUDOKU puzzle.
そこで我々は,どの解法を使えばどれだけの問題が 解けるのか,解法ロジックの順を分析し,その結果を 総合して,パズルの難易度を判定するスコアを提案 する.
1.2 問題は枯渇しないのか
数独はn行n列の表にn個の異なる数字を,各数 字が各行,各列に1回だけ現れるように並べたラテン 方陣の一種である.9×9の一般的な数独の解答とし て有効なパターンは
6670903752021072936960 (6.67×1021) であるという[1].行や列の入れ替え,盤面の回転,転 置,数字の置き換えなどで同一となるパターンが存在 するため,実際の有効解はこれよりも少なくなるが,
パズルを作る際は空きマスを設ける必要があり,数独 の問題としてのパターンは有効解の個数よりずっと多 くなるため,問題が枯渇することはないだろう.
数独のヒント数字に対称性をもたせるなどの美しさ の追究が,問題作者の腕の見せ所にもなっている.
1.3 行,列,ブロック
本稿では,数独の盤面をi行j列の行列(i, j)とし て扱う.たとえば,上から2つめのヨコ列は2行,右 から3つめのタテ列は7列となる.ブロックについ ても3行3列の行列として扱う.したがって左上の ブロックは1行1列,右下のブロックは3行3列と なる.またブロックについてはブロック[i, j] などと 表記する.
図2 各マスの添字 Fig.2 Indices of cells.
図3 各ブロックの添字 Fig.3 Indices of blocks.
2 難易度判定の試み
数独は,埋めるべき空白マス(以下空きマスと呼ぶ)
を減らしてゆくパズルである.したがって,空きマス
が多いほど問題は難しくなると予想される.
また,各マスには1∼9の数字が入るが,そのマス が属する行,列,ブロックで既に使用されている数字 は入ることはないため,候補が絞りこまれていく.し たがって,それぞれの空きマスに,入る可能性のある 数字(以下候補数字と呼ぶ)の個数が多いほど,それ だけ数字の選択肢が増えるため難解な問題であると予 想される.
2.1 空きマス数と公称難易度
空きマス数と公称難易度の関連を図4に示す.笠 倉出版の「世界基準ナンプレ300」の2冊[8, 9]に掲 載された600問を分析したもので,図の横軸に空き マス数と公称難易度をとり,縦軸に問題数をプロット した.
8OWUD(DV\
8OWUD(DV\
8OWUD(DV\
8OWUD(DV\9HU\(DV\9HU\(DV\9HU\(DV\9HU\(DV\(DV\(DV\(DV\(DV\0HGLXP0HGLXP0HGLXP0HGLXP0HGLXP+DUG0HGLXP+DUG0HGLXP+DUG0HGLXP+DUG+DUG+DUG+DUG+DUG9HU\+DUG9HU\+DUG9HU\+DUG9HU\+DUG6SLF\6SLF\6SLF\6SLF\
ၥ㢟ᩘ
✵ࡁ࣐ࢫᩘ
බ⛠㞴᫆ᗘ 8OWUD(DV\
9HU\(DV\
(DV\
0HGLXP 0HGLXP+DUG +DUG 9HU\+DUG 6SLF\
図4 公称難易度別の空マス数の分布
Fig.4 Numbers of puzzles are plotted in terms of initial blank-cells and the official difficulty levels by the puzzle writers.
公称難易度が「UltraEasy」側に近づくほどピーク が横軸の左側にあり,「Spicy」側に近づくほどピーク が右側になっている.空きマス数と公称難易度には相 関がありそうだ.実際,公称難易度を「UltraEasy」
= 1,「Spicy」= 8となるように数値化して,相関係 数rを求めると,r= 0.87となる.強い相関である.
ただし空きマス数は,埋めなければならない数字の 個数に等しい.また空きマス数が多いほど解く際に時 間がかかることから,この結果は当然であるとも考え られ,空きマス数が多くても簡単な問題や,空きマス 数が少なくても難しい問題などの難易度の判定は,空 きマス数だけでは難しい.
2.2 候補数字数と難易度
難易度の指標として,Chenは,数独エントロピー という量を提案している[2].初期盤面でのマス(i, j)
に入る可能性のある候補数字数を|vij|として,
HG=− 1 81
∑
i,j
log 1
|vij| (1) と定義する量で,候補数字が多いほど難易度が高いだ ろう,というアイデアである(最初から数字が入って いるマスは|vij|= 1として計算する.).
先と同じく「世界基準ナンプレ300」[8, 9]の600 問に対して数独エントロピーHG を計算した結果を 表1に示す.
表1 「世界基準ナンプレ300」[8, 9]掲載の 600問の公称難易度と数独エントロピーHG
Table 1 The official difficulty levels and these SUDOKU entropy HG (minimum, maximum, and average). Samples are 600 puzzles in [8, 9].
HG HG HG
公称難易度 問題数 最小値 最大値 平均値 UltraEasy 38 0.1983 0.4324 0.3509 VeryEasy 48 0.3581 0.6397 0.5179 Easy 104 0.6520 0.8363 0.7304 Medium 108 0.7199 0.9793 0.8379 MediumPlus 100 0.8252 1.0466 0.9241 Hard 100 0.8165 1.0244 0.9175 VeryHard 100 0.8387 1.0326 0.9156
Spicy 2 0.8956 0.9840 0.9398
Chen の 計 算 結 果 で は ,( サ ン プ ル が 異 な る が )
「Easy」「Intermediate」「Hard」の順に有意にHG
の値が増加したが,残念ながら上記のサンプルでは難 易度が高いとされるところではHG にそれほど差が 見られない.しかし,相関係数は r= 0.89 となり,
空きマス数を使う方法より若干強い相関が見られた.
候補数字の個数は同じ空きマス数でも,数字の配列 によって変わってくる.このことから,公称難易度と 空きマス数との関係よりもより細かく難易度を指し示 すことができると考えられる.
2.3 難易度判定の問題点
以上の2つの指標は,どちらも解き始める前の盤面 の状態から数独の難易度を判定したものだ.実際に,
解いている途中のプロセスを含めての難易度判定では ない.そこで我々は,実際に数独を解くロジックを用
いて,数字の埋まりやすさや思考の難しさなどを難易 度の指標に取り込むことを試みる.
3 数独の解法ロジック
数独にはさまざまな解法ロジックが存在するが,本 研究で用いる解法はロジックそのものがややこしくな らないよう,数独の専門雑誌や書籍に記載されている ものをベースに独自に分類した.解法の呼び名につい ては独自に命名したものもあるが,対応する別名につ いてはAppendixにて示す.
3.1 解法の2分類
数独の解法には,大きく分けて,
• 数字の入るマスを絞り込む方法(CRBE法)
• マスに入る可能性のある数字の候補を絞り込む 方法
の2つがある.後者を行うには,それぞれの空きマ スについて,候補となる数字をすべて書き出すプロセ スが必要である(これをペンシルマークをつけるとい う).したがって,まず,前者から解きはじめるのが 普通であろう.数独の専門誌には必ず載っているのも 前者(CRBE法)であり,実は多くの問題がこのロ ジックで解けてしまう.そこで,CRBE法の説明か ら始めよう.
3.2 CRBE 法 (CRBE method) 3.2.1 基本的な CRBE 法
あ る 数 字 が 入 る 可 能 性 の あ る マ ス を ,周 辺 の行 (row),列(column),ブロック(block)から絞り込む (elimination=消去する)方法で,CRBE法と呼ばれ ている.
図1の問題を考えよう.CRBE法では数字が多く 出現しているほど有効に絞り込むことができるため,
出現している数の多い数字に注目して適用するほうが 効率よく数字を埋めることができる.図 1の盤面の 数字の中では,8が7個と一番多いので,8に注目し よう.
ブロック[1,3]を見ると,空きマスは(1,7),(2,7), (2,8),(2,9),(3,7)の5箇所である.ルール1の ヨ コ列のどの列にも1∼9の数字が1つずつ入る を 用いて,8が入る可能性のある場所を考えてみると,
- マス(1,5)に既に8が入っているので,1行目に は8は入らない.
- 同様にマス(2,1)にも8が既に入っているので,
2行目には8は入らない.
以上より8はマス(3,7)に入ることがわかる(図5).
続けてブロック[3,3]に注目すると,ルール2より,
7列目の(3,7)に8があり,8列目にも8があること から,マス(9,9)に8が入ることがわかる.
図5 図1の問題で,ブロック[1,3]と[3,3]
で数字8にCRBE法を適用後
Fig.5 For the puzzle of Fig. 1, after ap- plied the CRBE-method on number 8 for the blocks [1,3] and [3,3].
3.2.2 探索対象の数字の選び方
上述したように,探索の対象にする数字はその時点 で一番多く出現しているものを選ぶのが効率的であ る.ただし,盤面の数字を数え,
• 数字が既に9つ埋まっているもの
• 直近の探索で埋まらなかったもの
の2つは除外し,複数の数字が同数であれば,小さい 数字から対象とすることにしよう.
図1の問題で,8を埋めてゆく作業を繰り返す.9 つのブロックすべてで8の位置が確定するか,途中 で絞り込めなくなるまで続けることにしよう.この例 では,8はすべて確定し,図6のようになる.この時 点で,盤面の数字は多い順に,8= 9個,2= 6個,
· · ·である.そこで,次に多い2を探索対象の数字と して,CRBE法を適用する.
2に対してCRBE法を行うと,1つだけ埋まる(図 7).この時点で盤面の数字は,8= 9個,2= 7個,
3,6,7,9= 5個· · ·となる.2はこれ以上埋まらない のだから,3に注目してCRBE法を行う.3も1つ 確定する(図8).
この時点での盤面の数字は8 = 9個,2 = 7個,
3= 6個,6,7,9= 5個· · ·である.3が決まったこ とで,再度2を探索数字として選び,CRBE法を繰 り返す.この問題の場合,2は確定せず,(盤面の変 化がないので3の探索は不要なので)次に6を対象と
図6 図5に続けて,8を埋めた後.
Fig.6 Filling number8, after Fig. 5.
図7 図6に続けて,2を埋めた後.
Fig.7 Filling number2, after Fig. 6.
図8 図7に続けて,3を埋めた後.
Fig.8 Filling number3, after Fig. 7.
して選ぶことになる.
このように数字が埋まらない状態が続けば探索の対 象から除外となり,新しく数字が埋まれば盤面の変化 により埋まる可能性が出てくるので対象に含める.こ の方法を繰り返してCRBE法を続けることになる.
3.2.3 CRBE 法の改良
CRBE法をより効率良いものにするために,人間の 思考に合わせて新たに2つのルールを付け加えよう.
•「残り1つ」なら速効ルール
各行,列,ブロックで空きマスがただ1つになっ た場合は必然的にそのマスに入る数字が確定す るため,注目している数字でなくても強制的に マスを埋める.
•「残り2つ」は記憶して後回しルール
対象として探索した数字が残り2つ(マスの可 能性4箇所)となった場合,そのマスを記憶して おき,そのマスが他の数字の探索で埋まらない 限り,探索数字としない.
1つ目は,図9の3行目のような場合である.3行 目ではマス(3,6)だけが空白であり,この行には1が 入ることがすぐ分かる.先ほどの対象数字を選ぶ規則 では,盤面数字の中では1は2個と最も少なく,探索 の順がなかなか回ってこない.しかし実際に人が解く 場合は,このようなマスを見つけるとすぐに埋めるの が当たり前である.
図9 3行目が残り1マスの盤面(図8と同じ 盤面).
Fig.9 Only one cell is left in the third row (The same with Fig.8).
2つ目は,記憶を用いる方法である.例えば前の節 では以下のような順で探索を行った.
8を対象数字に(すべて埋まる)
→ 2を対象数字に(1個埋まり2個残る)
→ 3を対象数字に(1個埋まり2個残る)
→ 2を対象数字に(1つも埋まらず2個残る)
→ 6を対象数字に · · ·
このとき4行目の探索数字の選定で2は1つも新 たに埋めることが出来ていない.これは2の入る可 能性のあるマスが他の数字によって埋まっていないた めである.図10は図7と同じものだが,2を埋めた 後の状態である.2は残り2つとなり,入る可能性の あるマスも,(1,2),(1,3)のどちらか,(5,2),(5,3) のどちらかの計4箇所に絞り込まれている.そのた め,これら4つのマスが2以外の数字で埋まるか,関 係する行,列,ブロックの残り1マスとなり8個目の 2が埋まらない限り,2を探索する意味はない.よっ て,この場所を記憶しておき,他の数字や残り1マス となった数字が埋まる度に照合し,記憶した場所に数 字が埋まっていない限り探索対象から除外しよう.記 憶を残り2個に限定したのは,実際に人が解く場合と 比較したとき,4箇所程度なら覚えておくことが可能 と考えられるからである.
図10 4つのマスに記憶の適用(図7と同じ 盤面).
Fig.10 Applying your memory to four cells (The same with Fig. 7).
以上の2つの工夫で,探索する数字選定の無駄がな くなり,効率良くCRBE法を行うことができるよう になる.
3.3 ペンシルマーク (pencil-mark)
CRBE法で問題が解けなかった場合,今度は,各 空きマスに入り得る候補数字を書き込む作業を行い,
次のロジックへと進むことになる.候補数字は各マス に小さく記入すると分かりやすく,これを「ペンシル マーク」と呼ぶ.
もともと,初期状態では各マスのペンシルマークは 1∼9の9つと考えても良い.いろいろな解法ロジッ クでペンシルマークが絞り込まれ,最後に1つに絞り こまれたマスはその数字で確定する,と理解すること もできる.
図1の問題について,(CRBE法を適用せずに)ペ ンシルマークを書き入れた例を図11に示す.
図11 ペンシルマークの記入例.図1の問題 に(CRBE法を適用せず)ペンシルマークを 記入した盤面.
Fig.11 Filling pencil-marks for the puzzle Fig. 1 without applying the CRBE-method.
3.4 ペンシルマークを確定するロジック
ペンシルマークを書き出したあとは,ペンシルマー クを絞り込み,確定させてゆく作業を行うことにな る.まず,確定させる基本的なロジックを2つ挙げて おく.3.4.1 単一候補法 (unique-candidate)
1つのマスに1つのペンシルマークしかなければそ のマスは確定である.確定後,関連するペンシルマー クを消去するまでのロジックを単一候補法と呼ぶこと にする.
たとえば,図11のマス(2,2)は,ペンシルマーク は数字1しか残っていない.すなわち,1で確定であ
る.マス(2,2)が1と確定すると,図11の2行目・
2列目およびブロック[1,1]の(2,2)以外の箇所にあ るペンシルマーク1が消去される(図12).
図 12 図 11 に 対 し て ,単 一 候 補 法 を マ ス (2,2)に適用後.
Fig.12 Apply the unique-candidate method to the cell (2,2) for Fig. 11.
3.4.2 単一マス法 (unique-cell)
それぞれの行,列,ブロックにおいて特定の数字n の候補が1つのマスにしか存在しない場合,そのマス に入っている数字n以外の候補は消去される.これ を単一マス法と名付ける.
たとえば図13上 で,ブロック[2,3]に注目すると
(7行目に注目してもよいが),このブロック内では候 補9はマス(5,7)にしかない.したがってマス(5,7) は9で確定し,9以外のペンシルマーク 4,6は消 える.
同様に5行目に注目すると候補1はマス(5,5)に しかないので,マス(5,5)は1で確定し,その他のペ ンシルマークは消える(図13下).
3.5 ペンシルマークを絞り込むロジック 3.5.1 双子法 (twins)
行,列,ブロックの中からペンシルマークのペア (双子)を見つけ,それを用いて候補を絞り込んでいく 方法を双子法と呼ぶことにする.次の2つのパター ンがある.
• 独立双子法(independent-twins)
1つの行・列あるいはブロックの中で,2つのマ スp1とp2に,2つの数字n1, n2の同じ組が存 在するとき,その行・列あるいはブロックにあ るp1, p2 以外のマスからn1 とn2の候補は消
図13 (上)図11と同じ盤面.単一マス法を マス(5,7)に適用前.(下)マス(5,5)と(5,7) に単一マス法を適用後.
Fig.13 (Top) The same with Fig. 11. Be- fore applying the unique-cell method to the cell (5,7). (Bottom) Applying the unique- cell method to the cell (5,5) and (5,7).
える.
• 居候双子法(dependent-twins)
1つの行・列あるいはブロックの中で,2つの数 字n1, n2が,2つのマスp1とp2にのみ存在す るとき,p1, p2の2つのマスでは,n1, n2以外 の候補は消える.
独立双子法の例を図14に示す.図14上 の2行目 に注目すると,マス(2,5)と(2,6)のペンシルマーク はどちらも2と3のみである*6.したがって,どちら か一方に2,他方に3が入るので,2行目の他のマス
*6 マス(2,5)と(2,6)の候補は2,3のみである で あって,マス(2,5)と(2,6)にのみ2,3がある で はないことに注意.
には2も3も入らないことになるので,候補から消え る(図14下).
図14 (上)独立双子法適用前.(下)独立双 子法適用前.[文献[3] p.95より]
Fig.14 (Top) Before and (Bottom) after ap- plying the independent-twins method.
図14下 では2行目のみの結果を示したが,さらに 独立双子法を使うとブロック[1,1]から4,5が,ブ ロック[1,2]から8,9や2,3がペアとして見つか り,さらに候補が消えることになる.
独立双子法の例を図15 に示す.独立双子法と同じ 図であるが,独立双子法は適用しない前提で説明を進 める.図15上 の1行目に注目すると,8,9のペア は,マス(1,4)と(1,5)のみにある.したがって,8, 9はこの2つのマスのどちらかで確定するはずだ.し たがって,マス(1,4)と(1,5)から8,9以外の候補 は消える(図15下).
さらに同様に居候双子法を使うと,ブロック[1,2]
ではマス(2,5)と(2,6)にのみ存在する2,3がペア として見つかり,(2,5)と(2,6)にある他の候補4と 5は消える.
3.5.2 三つ子法 (triplets)
双子法の拡張である.双子法と同様に,以下の2つ のパターンがある.
• 独立三つ子法(independent-triplets) 1つの行・列あるいはブロックの中で,3つの マスp1, p2, p3に,3つの数字n1, n2, n3 で 構成される組が存在するとき,その行・列ある いはブロックにあるp1, p2, p3以外のマスから n1, n2, n3の候補は消える.
• 居候三つ子法(dependent-triplets)
1つの行・列あるいはブロックの中で,3つの数
図15 (上)居候双子法適用前.(下)居候双 子法適用前.[文献[3] p.99より]
Fig.15 (Top) Before and (Bottom) after ap- plying the dependent-twins method.
字n1, n2, n3 で構成される組が,3つのマス p1, p2, p3にのみ存在するとき,p1, p2, p3の マスでは,n1, n2, n3以外の候補は消える.
3種類の数字が3マスに分布している場合だが,実際 には見落としやすいパターンがいくつかあるため注意 が必要である.
図16左 は盤面の左下部分で,3つのマスに,2,4, 6の3つの数字が収まっている.独立三つ子法を適用 すると,図16右 となる.
図16 (左)独立三つ子法適用前.(右)独立 三つ子法適用後.
Fig.16 (Left) Before and (Right) after ap- plying the independent-triplets method.
この例では,3つのマスに2,4,6が3つずつ存在 していたが,3つずつ存在する必要はなく,3種類の 数字が3つのマスに存在していればよい.そのため,
図17の3種類のような場合でも マス(8,1),(9,1), (9,2)に独立三つ子が存在する と言える.
居候三つ子法も同様である.図18左 は図16 と同 じであるが,独立三つ子法を使用しないとすれば,7,
図17 独立三つ子法パターン1, 2, 3. Fig.17 Independent-triplets patterns 1, 2, and 3.
8,9の3つの数字が3つのマスに収まっているので,
居候三つ子法が適用できる(図18右).
図18 (左)居候三つ子法適用前.(右)居候 三つ子法適用後.
Fig.18 (Left) Before and (Right) after ap- plying the dependent-triplets method.
居候三つ子法の場合も3つの数字が3つのマスす べてに存在している必要はない.図19の3パターン も該当する.
3.5.3 共有候補法 (common-candidate method)
行,列,ブロックの候補を複合的に考える方法を共 有候補法と呼ぼう.
図20上 の中央のブロック[3,2]の中で,候補6は マス(9,4),(9,6)にしか存在しない.したがって6 はこのどちらかに入ることになる.そうすると,同じ 9行目にある他の候補6は消える(図20下).
共有候補法は上で説明したブロックから行を消す場 合のみでなく,ブロックから列を消す場合,行からブ ロックを消す場合,列からブロックを消す場合の計4
図19 居候三つ子法パターン1, 2, 3. Fig.19 Dependent-triplets patterns 1, 2, and 3.
図20 (上)共有候補法適用前.(下)共有候 補法適用後.[文献[5] p.11より]
Fig.20 (Top) Before and (Bottom) after ap- plying the common-candidate method.
種類が存在する.これらはそれぞれ,お互いに3つの マスを共有しているため上記と同じ論理で候補を消去 することができる.
たとえば図21上 で9行目に注目すると,候補8は マス(9,1),(9,2)のどちらかで確定するはずである.
そうなると,図の左のブロック[3,1]で9行目以外に あった候補8は消えることになる(図21下).
3.5.4 対角線法 (diagonal-line method)
図22の2行目で候補5に注目すると,5列目のマ ス(2,5)と9列目のマス(2,9)の2箇所にのみ存在し ている.また6行目でも候補5は5列目のマス(6,5)
図21 (上)共有候補法適用前.(下)共有候 補法適用後.[文献[5] p.11より]
Fig.21 (Top) Before and (Bottom) after ap- plying the common-candidate method.
と9列目のマス(6,9)の2箇所にのみ存在している.
このとき,たとえば2行目で,マス(2,5)に5が入 ると,6行目の5はマス(6,9)に入ることになる.逆 に2行目で5がマス(2,9)に入ると,6行目ではマス (6,5)に入る.
つまり左上に入れば右下に,右上に入れば左下と,
この2パターンのどちらかしか候補5の入る組み合 わせはない.したがって,候補5がどちらのパターン で入ったとしても,5列目と9列目の,2行目と6行 目と交差しているマス以外のマスから候補5は消え る.このような対角線関係の組み合わせを見つけるの を対角線法と呼ぼう.
候補ではなく確定数字が並んでいる場合でも,対角 線法は適用できる.図23の3列目の中で9の数字は マス(3,3),(6,3)のどちらかに入り,7列目の中では マス(3,7),(6,7)のどちらかに入る.この場合でも 対角線的に9の数字が入るはずなので,3行目と6行 目の3列目,7列目以外のマスに9が入る可能性はな くなる(図23の×印).
4 解法ロジックのレベル
4.1 レベル 1 とレベル 2 の特定
前章では7つの解法ロジックを示したが,どれが もっとも汎用的なのかレベル分けを考えよう.これま でに述べた解法を整理すると,次のようになる.
• 解法には数字の入るマスを絞り込む方法と,マ スに入る可能性のある数字の候補を絞り込む方 法とがあった.
図22 (上)対角線法適用前.(下)対角線法 適用後.[文献[8] Question 300 Spicy,p.255 より]
Fig.22 (Top) Before and (Bottom) after ap- plying the diagonal-line method.
図23 確定数字を用いる対角線法.[文献[6]
p.13より]
Fig.23 Example of the diagonal-line method using the filled numbers.
• 数字の入るマスを絞り込む方法の場合,数字を 確定させる方法は1 CRBE法しかない.
• マスに入る可能性のある数字の候補を絞り込む 方法では,そのマスに入る数字を確定させるため の方法は2単一候補法と 3単一マス法の2つ になる.
• 4双子法,5三つ子法,6共有候補法,7対角 線法は候補を絞り込むだけの解法であり,これ らによってマスの候補が残り1つになった場合 は単一候補法によって確定,マスの候補の数字 が行や列,ブロックの中で1箇所のみになった 場合は単一マス法で確定される.
そのため単一候補法と単一マス法は,双子法,三つ子 法,共有候補法,対角線法を用いる前や後に必ず適用 しなければならず,優先順位が双子法や対角線法より も高くなる.
またCRBE法と単一候補法,単一マス法を比べる と,CRBE法は候補数字(ペンシルマーク)を使用 しないぶんだけ扱いやすい解法である.このことから CRBE1 法が最も簡単な解法,その後に2単一候補 法と3単一マス法がその後に続く.
CRBE法はレベル1とし,単一候補法と単一マス 法はまとめてレベル2とする.残りの4つの解法の レベル付けは,完成できる問題数の多さから分類する ことを試みる.
表2 統計対象としたパズル問題集.
Table 2 List of the puzzle sources.
タイトル(出版社,出版年) 問題数 超難問ナンプレ&頭脳全開数理パズル
9.10月号[5]
28
ナンプレファン10月号[6] 152 ナンプレメイト10月号[7] 181 世界基準ナンプレ300 Vol.1 [8] 300 世界基準ナンプレ300 Vol.2 [9] 300 最高段位認定 難問ナンプレ 220 題
vol.2 [10]
220
実力検定 難問ナンプレ250問 vol3 [11]
250
西尾徹也の世界で一番美しくて難しい ナンプレ2 [12]
100
数独の父 鍛冶真起が教える難問数独 [13]
108
合計 1639
4.2 レベル 3 以降の特定
双子法,三つ子法,共有候補法,対角線法の4つを 並べる順列は24通りあるが,できるだけ多くの問題 が完成できるような解法順を見つけ,レベルを特定し よう.
表3 レベル2 で残された722問に対する使 用解法別の完成数.
Table 3 Solved puzzles and combinations of used logics for the 722 puzzles which is not completed in Level 2.
使用した解法 完成した問題数
双子法 456
三つ子法 408
共有候補法 284
対角線法 134
双子法&三つ子法 513
双子法&共有候補法 597
双子法&対角線法 545
三つ子法&共有候補法 596
三つ子法 &対角線法 504
共有候補法&対角線法 331 双子法&三つ子法&
共有候補法 644
双子法&三つ子法&
対角線法 596
双子法&共有候補法&
対角線法 629
三つ子法 &共有候補法&
対角線法 629
4つすべてを用いた場合 674
表2に挙げた1639問のうち,レベル2までで完成 できなかった問題722問のうち,双子法,三つ子法,
共有候補法,対角線法を使うことで解くことのできた 問題674問について,使う解法を限定した場合の完成 数を表3に示す.そして,例えば,対角線法を除く3 つについて,ベン図を描くと図24のようになる.
4つの解法の24通りの順列について,完成できる問 題を単純に加算していくと表4の結果が得られた.で きるだけ多くの問題が完成できる順序を特定すると,
双子法→共有候補法→三つ子法→対角線法 の順となった.この順は,パズル愛好者にも納得のい く順ではないだろうか.表5に決定した解法のレベ
図24 3つの解法で完成できた問題数の内訳.
Fig.24 Solved puzzles with 3 logics.
表4 使用解法順別の完成できる問題の累積 数.
Table 4 Order of logics and cumulative solved puzzles.
解法順 累積数
双子→共有→三つ子→対角線 2369 双子→共有→対角線→三つ子 2354 双子→三つ子→共有→対角線 2285 双子→三つ子→対角線→共有 2237 双子→対角線→共有→三つ子 2302 双子→対角線→三つ子→共有 2269 共有→双子→三つ子→対角線 2197 共有→双子→対角線→三つ子 2182 共有→三つ子→双子→対角線 2196 共有→三つ子→対角線→双子 2181 共有→対角線→双子→三つ子 1916 共有→対角線→三つ子→双子 1916 三つ子→双子→共有→対角線 2237 三つ子→双子→対角線→共有 2189 三つ子→共有→双子→対角線 2320 三つ子→共有→対角線→双子 2305 三つ子→対角線→双子→共有 2180 三つ子→対角線→共有→双子 2213 対角線→双子→共有→三つ子 1980 対角線→双子→三つ子→共有 1947 対角線→共有→双子→三つ子 1766 対角線→共有→三つ子→双子 1766 対角線→三つ子→双子→共有 1906 対角線→三つ子→共有→双子 1939
ルを改めて示す.
表5 解法のレベル.
Table 5 Concluded order of the logics.
レベル 解法
レベル1 CRBE法 レベル2 単一候補法,単一マス法 レベル3 双子法
レベル4 共有候補法 レベル5 三つ子法 レベル6 対角線法
4.3 解法の適用順序
解法のレベルが決定したので,次に解法の適用順に ついて述べる.解法の適用順を決めておくことで,数 独を解く際にどのレベルまでの解法を用いないと解け ないかを明確にすることができる.
基本的には表5に示した解法レベルの低いものか ら適用し,あるレベルの解法で完成しなければ次のレ ベルの解法を適用する.また,ある解法を適用したと きに候補が消えたり数字が埋まったりと盤面に変化が あった場合は,レベルの低い解法に戻って解析を再開 する.しかし単一候補法,単一マス法が候補数字確定 のために必須となる解法であることから,実際の使用 順はこれより複雑になる.
図25に解法使用順のフローチャートを示す.図中 の「候補使用」とは,単一候補法,単一マス法の適用 である.
解析は,最初にCRBE法を実行する.CRBE法だ けで盤面が完成しなければ,ペンシルマークを書き込 む.そして,単一候補法,単一マス法を適用してペン シルマークを確定する作業を行う.
単一候補法,単一マス法で盤面が完成しなければ双 子法以降を実行する.ここからは少し厄介である.双 子法以降では,候補を絞り込んだあとは単一候補法,
単一マス法を実行して,数字が確定するかを調べる.
このとき,候補の数字が消えたり,新しく数字が確定 するなど,候補を含め盤面に変化があった場合は再 び双子法に戻って解析を開始する.CRBE法まで遡 らないのは,単一マス法がCRBE法の代わりとして 使用できるからである.また候補を書き込んだ場合,
CRBE法で探索するよりも書き込まれた候補から数 字が埋まるかどうかを調べるほうが効率的であること も理由の一つである.なお,双子法実行後のみ盤面に
変化があっても,再び双子法を実行しても意味がない ため,盤面が完成するとき以外は次の共有候補法を実 行する.
以上で代表的な7つの解法を紹介し,その順序付け を行ったが,実はこれらの 7つの解法ですべての問 題が完成できるわけではないこともすでに分かってい る.ここで述べた以上に複雑な解法ロジックも存在す る.また,問題によっては,『答えが1つに決まるた めには,このマスにはこの数字が入らなければならな い』というようなパズル成立のための条件を汲んだよ うな候補数字の確定が必要になる場合もあるし,機械 的に『総当たり戦』でしか解が見つけられないような 場合もある.これらのロジックを含めることは将来の 課題として,ここでは上述した7つの解法で数独パズ ルに挑むことにしよう.
5 難易度の数値化
5.1 難しさの要素
前章までで,数独の代表的な7つの解法について,
汎用性からみた優先順位を特定することができた.ど の解法までを用いるか,という視点に立てば,数独の 各問題について7つのレベルに分類することができ ることになる.ただし,一番基本的なCRBE法だけ で4割強の問題が完成してしまうことから,我々は7 つのレベル分けでは満足せず,より細かな数値化を考 えてゆくことにする.
そもそも数独を解くパズラーが感じる難しさとは何 だろうか.我々は
• 完成させるまでのステップ(探索回数や判定回 数)が多いこと
• 完成させるまでに必要とされる解法ロジックの レベルが高いこと
の2点と考えた.これらは,空白マスの数やペンシル マークの数のような,初期の盤面だけから計算できる 量ではない.実際に数独の問題を人間の思考に準じて 解くプログラムを作成し,その「実行時間」や「実行 ルーチン」を総合して算出できる量である.
ある程度人間の探索方法に似せたプログラムを組む 必要があるのは当然だが,単純にプログラムの実行時 間を実測するのであれば,プログラムの質に左右され やすいし,計算機環境にも依存する.実際には人間が 行わないような機械的なループ処理や変数の初期化な ども含まれてしまう.そこで,「実行時間」を評価す る手段として,各解法ロジックごとに数字を確定する までの処理数をなんらかの基準で設け,カウントして
盤面未完成 盤面完成 解析開始
CRBE法
盤面完成? Yes No
候補使用
盤面完成? Yes No
双子法
候補や数字に変化? Yes No
盤面完成? Yes No
共有候補法
候補や数字に変化? Yes No
盤面完成? Yes
No
双子法へ 三つ子法
候補や数字に変化? Yes No
盤面完成? Yes
No
双子法へ 対角線法
候補や数字に変化? Yes No
盤面完成? Yes
No
双子法へ
図25 解法使用順のフローチャート.
Fig.25 Flowchart of the solver using the concluded order of the logics.
ゆく方法をとることにする.
レベル2以降では,候補数字(ペンシルマーク)を 絞り込む作業になるが,ここで「確定した数字の個数 に着目するのか,それとも消すことができた候補数字 の個数に着目するのか」という疑問が生じる.前者で はパズル完成時には初期盤面の空きマス数と等しくな る.問題を解く側に立てば,候補数字を消してゆくス テップが難易度に関連すると考えられるので,後者に 着目することにする.
しかし後者の場合には,
• 消すことができた候補数字の個数が少ない場合 は難易度を高く,多い場合には難易度を低く設 定する
工夫も必要であろう.これは一見矛盾するように思え るが,候補数字が一度にたくさん消える場合よりは,
『たくさん探してようやく候補を消すことが出来た』
という場合に難しかったと考えるほうが自然だから である.そこで,我々は行・列・ブロックごとに数字 を「探索する回数」をカウントし,その加算値を測る ことにする.探索回数に着目することで,「完成しな かった問題にどう対応するのか」という問題も解決で きる.最終的に問題が完成するか,あるいは7つの解 法ロジックで解けないと判定された時点でのカウント の総和を用いれば,「難しいほど大きい数字」となる 指標が定義できるはずだ.
5.2 難易度スコアの提案
我々は,7つの解法ロジックを図25のフローチャー トに応じて適用するプログラムを用い,次の手順で難 易度を算出することにした.
• レベル1のCRBE法では,探索する数字を選ぶ ごとに1カウントとする.
• 候補数字(ペンシルマーク)を見つける作業は,
数字1つごとにカウントする.
• レベル2以降の各解法では,行・列・ブロックご とに探索する回数をカウントする.
• 各解法の探索は,無駄のないよう途中で打ち切 る条件を設ける.
そして,最終的に問題が完成するか,7つの解法ロ ジックで解けないと判定された時点でのカウント総和 を各問題の難易度とみなし,その問題のスコア(D-ス コア)と呼ぶことにする.
以下では,それぞれの解法ごとに,どのように処理 数をカウントしていくかを説明する.
5.3 処理数カウント方法の詳細
■ CRBE 法でのカウント
1 CRBE法では,探索数字の選定を1つの処理とみ なし,カウントしていくことにする.こうすれば,ど のような方法でプログラミングを行ってもカウントは 一意に決まる.
§3.2.2 で説明したような探索する数字の選び方を
用いたとすれば,具体的には,たとえば
1が埋まる場所を探す →7が埋まる場所を探す →4が埋まる場所を探す→
というような探索を行うが,この回数をそのままカウ ントとして利用する.上記の場合は探索を行う前をカ ウント「0」とすると,カウント「3」まで経過したこ とになる.このようにすることで,一度にたくさんの 数字が埋まるような問題の場合はスコアが低くなり,
何度も巡回してようやく数字が埋まるような問題の場 合はスコアが高くなるように設定できる.
■候補数字(ペンシルマーク)書き込みのカウ ント
CRBE法で解けなかった場合,2単一候補法・3単 一マス法以降の解法では,候補数字(ペンシルマー ク)を絞り込む操作を行うことになる.候補は空きマ スに対して書きこむものであるため,空きマスに候補 を書きこむ度にカウント「1」を数える.
■初回候補使用 ( 単一候補法・単一マス法 ) のカ ウント
すべての空きマスに対して候補数字(ペンシルマー ク)を書き込んだあと,それぞれの空きマスについて 数字が確定するかどうかを調べる.数字を埋める時点 では,これ以降の解法との兼ね合いのため,カウント しない.よって初回候補使用でのカウント数は,空き マス数と等しくなる.
■双子法でのカウント
4双子法は行,列,ブロックについて探索を行う.そ こで各行,各列,各ブロックの探索でそれぞれカウン トを「1」増やす.合計すると9 + 9 + 9 = 27となる.
双子法には独立双子法,居候双子法があったが,それ ぞれで行,列,ブロックの探索を行うため,双子法で は合計「54」だけカウントが進む.
これ以降の解法にも言えることだが,このカウント の「54」は最小単位であり,候補を消すことによって 数字が確定した場合はさらに候補を消すことができる 可能性があるため,カウント数はこれより増える.こ
れについては5.4節で説明する.
■共有候補法でのカウント
5共有候補法はブロックから行・列の候補を消去する 場合と,行・列からブロックの候補を消去する場合の 4パターンがある.前者は,あるブロックの中の候補 が特定の行で揃っていれば行の候補の消去,特定の列 で揃っていれば列の候補の消去ができる.行か列か は,候補が縦に並んでいるか横に並んでいるかの違い だけなので一度に確認することができる.したがって ブロックから行,列の候補を消去する場合はブロック 中の候補を1つチェックするごとにカウントを「+1」 とする.
一方,後者の場合は,行からブロック,列からブロッ クと,独立して行わなければならない.したがって各 行で候補を1種類探索するごとにカウントを「+1」,
各列で候補1種類探索するごとにもカウントを「+1」 とする.
以上より共有候補法では少なくとも(9×9) + (9× 9×2) = 243だけカウントが進む.
■三つ子法でのカウント
6三つ子法は双子法同様,行・列・ブロックについて 探索を行うので,各行・各列・各ブロックの探索でカ ウントを「1」増やす.三つ子法にも独立三つ子法,居 候三つ子法があるため,三つ子法全体では少なくとも 54だけカウントが進む.
■対角線法でのカウント
7対角線法は行から列をみる方法と,列から行をみ る方法とがある.また行や列はそれぞれ 2つを選 ばなければならない.たとえば行を2本選ぶ場合は
9P2 = 36通りの選び方がある.それぞれについて,
更に候補が9種類あるため,行から列を見る方法では 36×9 = 324カウントが増える.列から行を見る場 合も同様に 324カウントかかるので,対角線法全体 では少なくとも 648カウントが進む.
5.4 探索の打ち切り方
解法レベルが双子法以降のものは基本的に1行目 から9行目,1列目から9列目というように順に探索 を行う.
たとえば行だけの探索を考えた場合,行すべての探 索を終えればカウントは「9」増えたことになるが,こ の探索によって数字が新たに確定した場合は,更に候 補が消える可能性があるため,追加して行探索を続け る必要がある.列・ブロックについても同様である.
たとえば4行目の探索後に数字が新しく確定した としよう.この場合,続けて探索を行い9行目まで探
索をしたあと,再び1行目に戻り3行目まで探索を続 ける.同じく4行目までに戻る間,一度も数字が新し く確定しないならば,これ以上探索する必要はない.
したがって,最後に数字が確定してから9回(打ち切 りカウント=9)で同種の探索を打ち切ればよい.
実際の解法では,たとえば双子法の場合,独立双子 法の行・列・ブロック,居候双子法の行・列・ブロッ クの順で探索を行うので,打ち切りカウントは54と なる.独立双子法の3列目で新しく数字が確定した 場合,それ以降一度も数字が確定しなかった場合は,
カウント「+54」後の独立双子法の2列目の探索で打 ち切られることになる.
このように工夫することで無駄のない効率的な探索 ができ,そのときの実行処理数を正確にカウントする ことができる.
6 難易度スコアの特徴
この章では表2に挙げた約1700問の問題について 難易度スコア(以下D,difficulty levelの頭文字とし て)の結果を示す.またスコアを空きマス数や数独エ ントロピー,予想タイムなどとも比較する.
6.1 解法ロジックとスコアの相関
まず,完成するまでに必要となった解法レベルとス コアの相関を表6に示す.スコアDの平均値を見る
表6 完成するまでに必要となった解法レベル とスコアD.
Table 6 D-score and the required levels of the logics.
解法レベル
完成
問題数 D平均値 標準偏差
CRBE1 法のみ 717 25.89 14.19
候補使用まで 200 72.49 9.83 4双子法まで 456 101.86 25.20 5共有候補法まで 142 329.53 187.58 6三つ子法まで 47 816.91 247.87 7対角線法まで 29 1306.21 620.59
未完成 48 1754.19 645.26
全数 1639 175.22 382.30
と,使用する解法が多くなるほど高くなっている.こ れによりたとえば,双子法まで必要な問題は,CRBE 法だけで解ける問題の4倍難しいなどのように表現
することができる.
また未完成の48問についてもD平均値が1754.19 と一番高くなっているので,他の問題のスコアと比較 して,『スコアが高い,難しすぎて解けないかもしれ ない』というイメージを与えることができる.
6.2 空きマス数とスコアの関係
次に,2章で示した空きマス数とスコアD の関係 を図26に示す.CRBE法の場合,空きマス数の分布
1 10 100 1000 10000
30 35 40 45 50 55 60 65
ࢫ ࢥ
✵ࡁ࣐ࢫᩘ
CRBEἲ
ೃ⿵⏝
Ꮚἲ ඹ᭷ೃ⿵ἲ
୕ࡘᏊἲ ᑐゅ⥺ἲ ᮍᡂ
図26 空きマス数とスコアDの関係.
Fig. 26 D-score and the numbers of initial blank-cells.
は40∼60であるが,その他の解法は50∼60に多く 分布している.たとえば対角線法まで用いないといけ ない問題と双子法までで解ける問題を比較した場合,
同じような空きマス数でもスコアを用いるとその数値 により差が出てくるため,空きマス数から難易度を判 定するよりも細かく正確に難易度を判定できると考え られる.
6.3 数独エントロピーとスコアの関係
同じく,2章で議論した数独エントロピーHG と スコアDの関係を図27に示す.分布は,図26と似 た形となっている.こちらもCRBE法以外は,数独 エントロピーでは約0.6∼1と同じような数値である が,スコアDでは多く解法を用いたほど高いスコア になっているため難易度を判定しやすくなっている.
6.4 予想タイムとスコアの関係
最後に,数独の雑誌や書籍に記載されている完成予 想タイムとスコアD を比較してみる.完成予想タイ ムとは,各雑誌・書籍が独自に記載している完成時間 の目安や目標タイムである.
図28に完成予想タイムとスコアの関係を示す.使 用した約1600問のうち,完成予想タイムの記載があ
1 10 100 1000 10000
0 0.2 0.4 0.6 0.8 1 1.2
ࢫ ࢥ
ᩘ⊂࢚ࣥࢺࣟࣆ࣮
CRBEἲ
ೃ⿵⏝
Ꮚἲ ඹ᭷ೃ⿵ἲ
୕ࡘᏊἲ ᑐゅ⥺ἲ ᮍᡂ
図27 数独エントロピーとスコアの関係.
Fig. 27 D-Score and SUDOKU entropy HG.
る[6, 8, 9, 10, 11]の1222問 に対して相関を見た.
我々のスコアDは,パズルを解く側の処理数をもと
1 10 100 1000 10000
0 20 40 60 80 100 120 140
ࢫ ࢥ
ணࢱ࣒
CRBEἲ
ೃ⿵⏝
Ꮚἲ ඹ᭷ೃ⿵ἲ
୕ࡘᏊἲ ᑐゅ⥺ἲ ᮍᡂ
図28 予想タイムとスコアの関係.
Fig. 28 D-Score and expected solving time by puzzle makers.
に算出しているので,完成予想タイムとスコアには強 い相関が見られると予想されたが,実際に相関係数r を計算するとr= 0.55であった.解法を多く使用す るほど,予想タイムとスコアの関係にばらつきがみら れる結果となった.
7 まとめ
本稿では,数独の難易度を解法から判定し数値化す る我々の試みを紹介した.
これまでに試みられている数値化の方法としては,
問題の空きマス数や,空きマスに入る候補数字の数を
用いたものがあったが,これらはどちらも初期盤面の みの情報でしかない.我々の提案するスコアDは,
実際に解く場合の処理数をカウントする数値化法であ るため,より一層,現実に感じる難易度を表現できる と考えている.
このスコアにより,空きマス数や候補数字数での判 定以上に正確に難易度を知ることができるようになっ たと考えられる.パズルを解く人にとっても,パズル の作者にとっても励みとなる指標にご利用いただけれ ば嬉しく思う.
解法に用いられる代表的なロジック7つの汎用性 についても明らかにしたが,この7つだけでは,全体 の3%ほどの問題は未完成となる.今後は,もっと複 雑なロジックや問題整合性の視点を含めた改良も必 要と考えている.また,今後は,数独問題自身の幾何 学的な配列や対称性・美しさなども指標として取り入 れ,「見て美しい,解いて難しい」数独を判定するこ とも面白いかもしれない.
最後に,土出の卒論完成時にさまざまな有益なコメ ントをくださった早川友康さんに感謝いたします.
参考文献
[1] B. Felgenhauer & F. Jarvis, URL:
http://www.afjarvis.staff.shef.ac.
uk/sudoku/
[2] Z. Chen,arXiv:0903.1659 (2009)
[3] W-M. Lee,Programming Sudoku, Apress (2006)
[4] 数独通信11年春号Vol.20, ニコリ(2011) [5] 超難問ナンプレ& 頭脳全開数理パズル9.10月
号,学研パブリッシング(2010)
[6] ナンプレファン10月号,世界文化社(2010) [7] ナンプレメイト10月号,マガジン・マガジン
(2010)
[8] 世界基準ナンプレ300 Vol.1,笠倉出版社(2010) [9] 世界基準ナンプレ300 Vol.2,笠倉出版社(2010) [10] 最高段位認定 難問ナンプレ220題vol.2,白夜
書房(2010)
[11] 実力検定 難問ナンプレ250問vol3,コスミック 出版(2010)
[12] 西尾徹也,西尾徹也の世界で一番美しくて難し いナンプレ2,世界文化社(2010)
[13] 鍛冶真起,数独の父 鍛冶真起が教える難問数独,
ニコリ(2010)
[14] 松原康夫,数独の推論規則と難易度に関する考
察,社団法人 情報処理学会(2006)
付録 A 解法ロジックの呼び名
本稿で名付けた数独の解法ロジックは,必ずしも一 般的なものではない.いくつか入手した名称を比較の ため表7にまとめた.
表7 解法ロジックの呼び名の比較
Table 7 List of names of solving logics of SUDOKU.
本稿での名称 他の呼び名
1 CRBE法 Elimination法[3],ブロッケ ン,レッツミー[4]
2 単一候補法 CRME法[3],マスミ[4],推 論規則1[14]
3 単一マス法 Lone Rangers法[3],推論規 則2[14]
4 双子法 Twins[3],予約[4],推論規則
4,5[14]
5 共有候補法 いずれにしても理論[4],推論 規則3[14]
6 三つ子法 Tliplets[3],予約[4],推論規則 4,5[14]