2012年8月27日月曜日

g-matrix の発明

数独は number-place (ナンプレ)と呼ばれていたもので、1~9までの数字を、81のセルに、最初から与えられた数字(表出数、givens、ヒントとか言います)をヒントに残りの場所に数字を埋めるパズルです。解き方の基本は、数字を決めて場所を探す方法(B:ブロッケンとかR,C:マスミー)と場所を決めて数字を探す方法(M:マスミー)があります。

PCによる数独解析において、candy matrix は、候補の一覧表を表したもので、その場所に入る候補がハッキリと(Explicit)分かります。候補が一つだけしかないとき、Explicit Single ( Naked Single)と呼び、解が決定します。

ところが、鉛筆と消しゴムで解く場合(Pencil workといいます)、ある数字に狙いを定め場所を探します。つまり、場所(place)の一覧表を紙上で再現しているのです。

外国において、幾多の数独ソフトが開発されていますが、場所の一覧表(これをg-matrixと総称します)らしきものを使ったものは見かけません。その理由は、Variant変数により、g-matrixを作成する発想と表現法にたどり着くに至らなかったからでしょう。

g-matrixの発明とその応用により、数独のいろいろな技の数学的構造の説明と解法や「次の一手」の明快な表現が可能になりました。g-matrix発明にいたる経緯やそのアルゴリズムは昔のブログに詳しくかいてありますので、興味のある方は参照ください。
                                       http://numberplace.blogspot.jp/2009/09/45-vba.html


今回の次の一手は、朝日新聞8月25日夏の数独特集 第3問★★★★を取り上げます。


 Total point 97 、 Technical  59
                                    Visual point   38  ( artistic  26,   creative  12 )

 Ranking   BBB-
 Level  2  Very Easy

1   (7,3)= 1     B1   Block 7
2   (2,4)= 3     B1   Block 2
3   (3,2)= 8     B1   Block 1
4   (7,8)= 8     B1   Block 9
5   (4,3)= 8     B2   Block 4
6   (8,4)= 8     B2   Block 8
7   (8,6)= 1     B3   Block 8
8   (6,5)= 8     B3   Block 5
9   (2,8)= 1     R1   Row 2     Fig. 1
10   (7,9)= 5     R1   Row 7    Fig. 2
11   (6,7)= 5     B2   Block 6
12   (9,7)= 6     B2   Block 9
13   (5,7)= 1     B3   Block 6
14   (4,6)= 5     B3   Block 5
15   (3,9)= 6     B3   Block 3
16   (6,4)= 1     B4   Block 5
17   (4,9)= 2     B4   Block 6
18   (1,4)= 5     B4   Block 2
19   (1,2)= 6     B4   Block 1
20   (1,8)= 9     B4   Block 3
21   (3,5)= 1     B5   Block 2
22   (2,3)= 5     B5   Block 1
23   (4,1)= 6     B5   Block 4
24   (2,9)= 7     B5   Block 3
25   (8,9)= 9     B5   Block 9
26   (5,2)= 3     B6   Block 4
27   (9,2)= 5     B6   Block 7
28   (4,8)= 3     B7   Block 6
29   (8,7)= 3     B8   Block 9
30   (5,8)= 7     B8   Block 6
31   (7,1)= 3     B9   Block 7
32   (6,9)= 4     B9   Block 6
33   (9,8)= 4     B9   Block 9
34   (4,5)= 7     B9   Block 5
35   (9,5)= 3     B10   Block 8
36   (5,3)= 4     B10   Block 4
37   (3,6)= 7     B10   Block 2
38   (9,3)= 9     B10   Block 7
39   (9,6)= 2     B11   Block 8
40   (1,3)= 7     B11   Block 1
41   (3,4)= 9     B11   Block 2
42   (6,1)= 9     B11   Block 4
43   (1,5)= 2     B12   Block 2
44   (6,2)= 7     B12   Block 4
45   (3,7)= 2     B13   Block 3
46   (5,4)= 2     B13   Block 5
47   (2,6)= 4     B13   Block 2
48   (8,1)= 7     B13   Block 7
49   (2,1)= 2     B14   Block 1
50   (3,1)= 4     B14   Block 1
51   (1,7)= 4     B14   Block 3
52   (8,2)= 4     B14   Block 7
53   (7,5)= 4     B14   Block 8
54   (5,6)= 6     B14   Block 5
55   (7,4)= 6     B15   Block 8
56   (5,5)= 9     B15   Block 5
57   (7,6)= 9     B15   Block 8



第9手目

第10手目








     
  

0 件のコメント:

コメントを投稿