cobra_zj

数独爱好者
  • 内容数

    226
  • 注册日期

  • 最后上线

文章 发表由 cobra_zj


  1. 请问楼主,C4和G6的5、I5的1都是怎么得出的?我把第一图原题导入到HoDoKu软件中,软件提示第二图这几个数字不能是5和1。

    这个题目HoDoKu的分数为20434分,属于极端难度的题目。软件采用了2次Brute Force方式解出,我想已不适合人工解题了。


  2. r3c3和r3c4中肯定有一个是候选数6,否则形成BUG,删除r3c2和r3c5中候选数6,题解;

    或者Skyscraper可删除r2c3候选数6;或者Skyscraper可删除r3c2候选数6;或者2-String Kite删除r7c7候选数6,题解;

    或者,r3c2 r7c2 r7c7 r2c7 r1c9 r1c8 r1c4形成XY Chains,可删除r3c4候选数6后形成BUG+1模式(当然也可同时删除r3c5候选数6),题解。

    反正形成到这种盘式,一般用XY Chains、Skyscraper、2-String Kite等基本技巧,一般就能解出来了。


  3. 这个问题很值得向叶卡琳娜老师学习和探讨一下的。

    1、首先我当然知道这道题目有很多种正确的解题方法,而不会解到这样的盘式,只是想验证您说的“莫名其妙删除”。但是,万一“碰巧”我采用了我上面写的解题方法而解到了这样的盘式,那就一定说我解题方法不对了?当然解到这样的盘式我是不会用BUG+1的技巧去接下来解题的。当然本题的重点不是在讨论解题的过程,而是讨论如何进一步规范BUG+1的严格定义。

    2、你说的试数法我不是很明白,是不是就是这种方法?如:

    ----------

    若C6=4 -> C4<>4;

    若C6<>4 -> C6=5 -> E6<>5 -> E6=9 -> H6<>9 -> H6=2 -> G5<>2 -> F5=2 -> F5<>8 -> D5=8 -> D5<>1 -> D6=1 -> D6<>7 -> I6=7 -> I6<>9 -> I9=9 -> C9<>9 -> C7=9 -> C7<>3 -> C4=3 -> C4<>4

    故C4<>4,删除C4候选数4

    ----------

    一般解题时我先用一些基本的方法和技巧来排除一些候选数,当再也看不出来时(水平有限),我就会用这种方法再排除候选数。这种解题方法可用吗?属于正确的解题方法嘛?

    3、试数法、Forcing Chain、AIC的区别是什么?还有Forcing Net、Nice Loop、Grouped Nice Loop都是什么定义啊?

    4、您认为掌握一些“高级”技巧是需要的么?如ALS XY-wing、Sue de Coq等,实际在解题过程中较难发现,或者说等找到这样的技巧来应用,可能用其他的方法早就解完了。您解题会采用这些平时不太采用的技巧么?


  4. 我感觉里面的数字没有莫名其妙被删除啊,验证一下。

     

    删除候选数的步骤如下:

    ----------

    B7、F7组成数对{76},删除C7候选数7和6

    ----------

    G1、G6、H1、H6组成唯一矩形{29},删除G6候选数2和9

    ----------

    若I8=1 -> I6<>1;

    若I8<>1 -> I8=8 -> E8<>8 -> F9=8 -> F5<>8 -> D5=8 -> D5<>1 -> D6=1 -> I6<>1

    故I6<>1,删除I6候选数1

    ----------

    若A8=7 -> A6<>7;

    若A8<>7 -> A8=3 -> G8<>3 -> G8=1 -> G4<>1 & G5<>1 & G6<>1 -> I4=1 -> I4 <>7 -> I6=7 -> A6<>7

    故A6<>7,删除A6候选数7

    ----------

    E3、E8组成数对{78},删除E4、E6候选数7

    ----------

    若C5=6 -> B5<>6 & C6<>6;

    若C5<>6 -> C5=7 -> C1<>7 & C3<>7 -> A3=7 -> A3<>6 -> A6=6 -> B5<>6 & C6<>6

    故B5<>6 & C5<>6,删除B5、C6候选数6

    ----------

    若I6=7 -> C6<>7;

    若I6<>7 -> I6=9 -> H6<>9 -> H6=2 -> A6<>2 -> A6=6 -> C5<>6 -> C5=7 -> C6<>7

    故C6<>7,删除C6候选数7

    ----------

    若E4=9 -> I4<>9;

    若E4<>9 -> E4=5 -> E6<>5 -> E6=9 -> H6<>9 -> H6=2 -> A6<>2 -> A6=6 -> A3<>6 -> A3=7 -> A8<>7-> A8=3 -> G8<>3 -> G8=1 -> G4<>1 & G5<>1 & G6<>1 -> I4=1 -> I4<>9

    故I4<>9,删除I4候选数9

    ----------

    若B5=7 -> C4<>7;

    若B5<>7 -> B5=1 -> D5<>1 -> D6=1 -> D6<>7 -> I6=7 -> I6<>9 -> I9=9 -> C9<>9 -> C7=9 -> C7<>3 -> C4=3 -> C4<>7

    故C4<>7,删除C4候选数7

    ----------

    若C6=4 -> C4<>4;

    若C6<>4 -> C6=5 -> E6<>5 -> E6=9 -> H6<>9 -> H6=2 -> G5<>2 -> F5=2 -> F5<>8 -> D5=8 -> D5<>1 -> D6=1 -> D6<>7 -> I6=7 -> I6<>9 -> I9=9 -> C9<>9 -> C7=9 -> C7<>3 -> C4=3 -> C4<>4

    故C4<>4,删除C4候选数4

    ----------

    若C5=6 -> C9<>6;

    若C5<>6 -> C5=7 -> B5<>7 -> B5=1 -> D5<>1 -> D6=1 -> D6<>7 -> I6=7 -> I6<>9 -> I9=9 -> C9<>9 -> C7=9 -> C7<>3 -> C4=3 -> C4<>5 -> C6=6 -> C4<>4 -> C9=4 -> C9<>6

    故C9<>6,删除C9候选数6

    ----------

    若B5=7-> B4<>7;

    若B5<>7 -> B5=1 -> D5<>1 -> D6=1 -> D6<>7 -> I6=7 -> I6<>9 -> I9=9 -> C9<>9 -> C6=4 -> B9<>4 -> B4=4 -> B4<>7

    故B4<>7,删除B4候选数7

    ----------

    若A3=7 -> C3<>7;

    若A3<>7 -> A3=6 -> B3<>6 -> B5=6 -> G5<>6 -> G6=6 -> G6<>4 -> C6=4 -> C9<>4 -> C9=9 -> I9<>9 -> I9=8 -> F9<>8 -> E8=8 -> E3<>8 -> C3=8 -> C3<>7

    故C 3<>7,删除C3候选数7

    ----------

    若B4=1 -> G4<>1;

    若B4<>1 -> B4=4 -> B9<>4 -> C9=4 -> C9<>9 -> I9=9 -> I8<>8 -> I7=8 -> I7<>1 -> I4=1 -> G4<>1

    故G4<>1,删除G4候选数1

    ----------

    若F4=2 -> G4<>2;

    若F4<>2 -> F4=7 -> F7<>7 -> B7=7 -> A8<>7 -> A8=3 -> A4<>3 -> C4=3-> C4<>5 -> C6=5 -> E6<>5 -> E6=9 -> H6<>9 -> H6=2 -> G4<>2

    故G4<>2,删除G4候选数2

    ----------

    若G8=1 -> G5<>1;

    若G8<>1 -> G8=3 -> A8<>3 -> A4=3 -> A4<>2 -> F4=2 -> F5<>2 -> G5=2 -> G5<>1

    故G5<>1,删除G5候选数1

    ----------

    若A3=7 -> A4<>7;

    若A3<>7 -> A3=6 -> C3<>6 -> C5=6 -> G5<>6 -> G6=6 -> G6<>4 -> C6=4 -> C6<>5 -> C4=5 -> C4<>3 -> A4=3 -> A4<>7

    故A4<>7,删除A4候选数7

    ----------

    第2宫候选数7只在第5列,删除D5、F5候选数7

    ----------

    现在的图形和上楼的完全一样了!

    但是这样的图形接下来是不能用BUG+1技巧的!原因是在G行,候选数9多于2个;在第6列,候选数9多于2个,所以不能运用BUG+1的方法。

     

    初始图形如下:

    post-423-084202400 1306767267_thumb.png


  5. 解题步骤:

    B5=3(唯一显式候选数)

    A4、A6数对{45},删除A1、A2、A3、A7、C4、C6中候选数4和5

    C6=6(唯一显示候选数)

    C4=7(唯一显式候选数)

    C2=4(C行唯一隐式候选数)

    A7=8(A行唯一隐式候选数)

    B1=5(第1宫唯一隐式候选数)

    B2=6(B行唯一隐式候选数)

    E2=8(第4宫唯一隐式候选数)

    G8=8(第9宫唯一隐式候选数)

    H5=8(H行唯一隐式候选数)

    D6=8(D行唯一隐式候选数)

    H2=9(H行唯一隐式候选数)

    F6=9(第5宫唯一隐式候选数)

    B8、B9、D8、D9组成唯一矩形{29},且D行其他宫格中没有候选数9,删除D8、D9宫格中候选数2

     

    --------

     

    空矩形可删除G4中候选数4。即:

    若F4=4 -> G4<>4

    若F4<>4 -> F1=4 -> G1<>4 & I1<>4 -> G3=4 -> G4<>4

    故G4<>4,删除G4中候选数4

     

    ----------

     

    G行中候选数7只出现在第7宫格中,删除I1、I2中候选数7

     

    ----------

     

    若C9=5 -> E9<>5 & H9<>5;

    若C9<>5 ->C9=1 -> C8<>1 -> I8=1 -> I2<>1 -> I2=2 -> I6<>2 -> I6=4 -> A6<>4 -> A4=4 -> F4<>4 -> F1=4 -> G1<>4 & I1<>4 -> G3=4 -> G3<>5 -> G9=5 -> E9<>5 & H9<>5

    故E9<>5 & H9 <>5,删除E9、H9中候选数5

     

    ----------

     

    若I2=2 -> G3<>2;

    若I2<>2 -> I2=1 -> I8<>1 -> C8=1 -> C9<>1 -> C9=5 -> G9<>5 -> G3=5 -> G3<>2

    故G3<>2,删除G3中候选数2

     

    ----------

     

    若I2=1 -> I1<>1;

    若I2<>1 -> I2=2 -> I6<>2 -> I6=4 -> A6<>4 -> A4=4 -> F4<>4 -> F1=4 -> G1<>4 & I1<>4 -> G3=4 -> G3<>5 -> G9=5 -> C9<>5 -> C9=1 -> C8<>1 -> I8=1 -> I1<>1

    故I1<>1,删除I1中候选数1

     

    ----------

     

    若I2=2 -> I1<>2 & I7<>2 & I8<>2;

    若I2<>2 -> I2=1 -> I8<>1 -> C8=1 -> C9<>1 -> C9=5 -> G9<>5 -> G3=5 -> G3<>4 -> G5=4 or G6=4 -> I6<>4 -> I6=2 -> I1<>2 & I7<>2 & I8<>2

    故I1<>2 & I7<>2 & I8<>2,删除I1、I7、I8中候选数2

     

    ----------

     

    若I1=6 -> G3<>6;

    若I1<>6 -> I7=6 -> I7<>7 -> I8=7 -> I8<>1 -> C8=1 -> C9<>1 -> C9=5 -> G9<>5 -> G3=5 -> G3<>6

    故G3<>6,删除G3中候选数6

     

    ----------

     

    G5(14)-> I6(42)-> I2(21)组成XY-wing,删除G1、G2候选数1

     

    ----------

     

    若G5=1 -> G3<>1;

    若G5<>1 -> G5=4 -> I6<>4 -> I1=4 -> I1<>6 -> I7=6 -> I7<>7 -> I8=7 -> I8<>1 ->C8=1 -> C9<>1 -> C9=5 -> G9<>5 -> G3=5 -> G3<>1

    故G3<>1,删除G3中候选数1

     

    ----------

     

    若G3=4 -> G1<>4;

    若G3<>4 -> G3=5 -> G9<>5 -> C9=5 -> C9<>1 -> C8=1 -> I8<>1 -> I8=7 -> I7<>7 -> I7=6 -> I1<>6 -> I1=4 -> G1<>4

    故G1<>4,删除G1中候选数4

     

    ----------

     

    X Chains:

    若A6=4 -> E6<>4 & G6<>4;

    若A6<>4 -> A4=4 -> F4<>4 -> F1=4 -> I1<>4 -> I6=4 -> E6<>4 & G6<>4

    故E6<>4 & G6<>4,删除E6、G6中候选数4

     

    -----------

     

    接下来盘式有2种解法:

     

    方法1(swordfish技巧)A4、A6、F1、F4、I1、I6中候选数4组成了swordfish,即可删除D1、D4、E4中候选数4

    方法2(X Chains技巧)

    X Chains:

    若I1=4 -> D1<>4;

    若I1<>4 -> I6=4 -> A6<>4 -> A4=4 -> F4<>4 -> F1=4 -> D1<>4

    故D1<>4,删除D1中候选数4

    X Chains:

    若A4=4 -> D4<>4 & E4<>4;

    若A4<>4 -> A6=4 -> I6<>4 -> I1=4 -> F1<>4 -> F4=4 -> D4<>4 & E4<>4

    故D4<>4 & E4<>4,删除D4、E4中候选数4

     

    ----------

     

    若I2=1 -> H3<>1;

    若I2<>1 -> I8=1 -> C8<>1 -> C9=1 -> C9<>5 -> G9=5 -> G3<>5 -> H3=5 -> H3<>1

    故H3<>1,删除H3中候选数1

     

    ----------

     

    若A3=1 -> A1<>1;

    若A3<>1 -> E3=1 -> E5<>1 -> G5=1 -> G5<>4 -> I7=4 -> I7<>2 -> I2=2 -> I2<>1 -> G1=1 or H1=1 -> A1<>1

    故A1<>1,删除A1中候选数1

     

    ----------

     

    若A1=2 -> G1<>2;

    若A1<>2 -> A1=3 -> G1<>3 & H1<>3 -> G2=3 -> G6<>3 -> G6=2 -> G1<>2

    故G1<>2,删除G1中候选数2

     

    ----------

     

    若I2=2 -> A2<>2;

    若I2<>2 -> I6=2 -> G6<>2 -> G6=3 -> G1<>3 & G2<>3 -> H1=3 -> A1<>3 -> A1=2 -> A2<>2

    故A2<>2,删除A2中候选数2

     

    ----------

     

    A1(23)-> A2(31)-> I2(12)组成XY-wing,删除H1中候选数2

     

    ----------

     

    若E5=1 -> E4<>1;

    若E5<>1 -> G5=1 -> G5<>4 -> I6=4 -> I6<>2 ->I2=2 -> I2<>1 -> H1=1 -> F1<>1 & F2<>1 -> F4=1 -> E4<>1

    故E4<>1,删除E4中候选数1

     

    ----------

     

    若F4=1 -> F2<>1;

    若F4<>1 -> E5=1 -> G5<>1 -> G5=4 -> I6<>4 -> I6=2 -> I2<>2 -> I2=1 -> F2<>1

    故F2<>1,删除F2中候选数1

     

    ----------

     

    F行F2、F7、F8组成三链数{257},删除F1、F4中候选数2、5和7

     

    ----------

     

    X-wing:

    候选数5在A4、A6、E4、E6中组成X-wing,删除E7、E8中候选数5

    或:F行候选数5只在第6宫中,删除E7、E8中候选数5

     

    ----------

     

    F2(72)-> I2(21)-> I8(17)组成XY-wing,删除F8中候选数7

     

    ----------

     

    若D5=7 -> D1<>7;

    若D5<>7 -> D5=4 -> G5<>4 -> I6=4 -> I6<>2 -> I2=2 -> F2<>2 -> F2=7 -> D1<>7

    故D1<>7,删除D1中候选数7

     

    ---------

     

    G7=7(第1列唯一隐式候选数)

    F2=7(第2列唯一隐式候选数)

    F7、F8组成数对{25},删除E7、E8、E9中候选数2

    第2列候选数2只在第7宫中,删除H3中候选数2

    第7宫中G3、H3、I1组成三链数{456},删除I1中候选数6

    D4(32)-> D1(26)-> I1(64)-> I6(42)-> G6(23)组成XY Chains,删除E6、G4、H4中候选数3

    G6=3(第6列唯一隐式候选数)

    G2=2(唯一显式候选数)

    I2=1(唯一显式候选数)

    I8=7(唯一显式候选数)

    I7=6(唯一显式候选数)

    I1=4(唯一显式候选数)

    I6=2(唯一显式候选数)

    H1=3(唯一显式候选数)

    F1=1(唯一显式候选数)

    F4=4(唯一显式候选数)

    G3=5(唯一显式候选数)

    G9=1(唯一显式候选数)

    G4=6(唯一显式候选数)

    G5=4(唯一显式候选数)

    H3=6(唯一显式候选数)

    H4=1(唯一显式候选数)

    H9=2(唯一显式候选数)

    H7=5(唯一显式候选数)

    F7=2(唯一显式候选数)

    F8=5(唯一显式候选数)

    E6=5(唯一显式候选数)

    E8=3(唯一显式候选数)

    E4=2(唯一显式候选数)

    E3=4(唯一显式候选数)

    E7=7(唯一显式候选数)

    E5=1(唯一显式候选数)

    E9=6(唯一显式候选数)

    D3=2(唯一显式候选数)

    D1=6(唯一显式候选数)

    D4=3(唯一显式候选数)

    D5=7(唯一显式候选数)

    D8=9(唯一显式候选数)

    D9=4(唯一显式候选数)

    C7=3(唯一显式候选数)

    C8=1(唯一显式候选数)

    C9=5(唯一显式候选数)

    A1=2(唯一显式候选数)

    A2=3(唯一显式候选数)

    A3=1(唯一显式候选数)

    A4=5(唯一显式候选数)

    A6=4(唯一显式候选数)

    B8=2(唯一显式候选数)

    B9=9(唯一显式候选数)

     

    ----------

     

    解题完毕!

     

    答案:

     

    231 594 867

    567 831 429

    849 726 315

     

    652 378 194

    984 215 736

    173 469 258

     

    725 643 981

    396 187 542

    418 952 673


  6. 如果你经常解一些难度较大的数独题目,你可能经常用到非完全约束集合删除法(Almost Locked Set,简称ALS)。如果你再掌握Sue de Coq删除法,或许会更加拓宽解题思路,一次性删除大量毫无作用的候选数,达到快速解题的目的。

    由于论坛上没有Sue de Coq删除法的介绍,也不知道这串字符的中文翻译(或者称为互不关联子集删除法),只能通过自己的实践和理解向大家介绍一下,不对之处敬请批评指正。

    条件:

    1、 存在两组数组A和B,A数组中M个不同类候选数存在于M+1个格位中,B数组中N个不同类候选数存在于N+1个格位中,且A和B数组中的候选数类别不重复。

    2、 A数组中候选数所在格位在一行或一列或一宫格中。B数组也一样。

    3、 A和B数组中的某些候选数同时存在于同一个(或同几个)格位中。也就是说A和B数组中的候选数有交合情况

    4、 A和B数组的候选数所在格位中没有多余的不归属于A和B数组的候选数。

    满足以上全部条件,删除:

    1、 若A数组中的候选数在行、列、宫格中则对应删除行、列、宫格中的同样其他候选数

    2、 若B数组中的候选数在行、列、宫格中则对应删除行、列、宫格中的同样其他候选数

    有点绕口。看看实例吧:

    例一:

    (附件1)

    上图中第2列B2 D2 E2组成{28、28、28}绿色数组(A数组);第4宫格D2 E2 F3组成{5、3、53}紫色数组(B数组)。删除黄色候选数。

    例二:

    (附件2)

    上图中第5行E2 E7 E8组成{86、86、8}绿色数组(A数组);第6宫格D9 E7 E8 93组成{137、13、137、17}紫色数组(B数组)。删除黄色候选数。

    post-423-097471000 1303437660_thumb.png

    post-423-016446800 1303437728_thumb.png