芬兰人Sartolnkala多年前设计的一道数独难题常为数独爱好者提起,俗称世界最难题或芬兰题。在网上拜读过@辉煌背后的衰落 对该题的详解和 @shermiesam 在数独吧内赐教的不同路线解法。前者踢门的网法(MSLS)和后者的高效七步解均令人印象深刻。遂有试解的冲动。说续解是因为网法高深无法逾越,只能接着做。想学七步解的效率但功力不够,努力凑了个十步杀。
本解题过程全用链方法最多用到数组链,不计清理步,十步解题。虽无多少新意,做个贺岁文尚可。
原题:
网 (MALS) 法示意:
网步后常规清理图,本文解题从此图开始:
第1步.r1c7(6) =r1c2(6-1) =r5c2(1-8) =r6c2(8)-r6c7(8) =r4c7(8). à r4c7<>6 出数 r4c7=8。
①
第2步. r9c5(1)=r1c5(1)-r1c2(1) =r5c2(1-8) =r5c4(8)-r9c4(8) ={r9c13489(76532)}. à r9c5<>6, r9c5<>3 。
链的末端是数组(图中涂色的格)。
②
第3步:r5c2(8) =r5c4(8)-r9c4(8) =b8r8(6)-r8c2(6) ={r278c2(432)}. à r5c2<>3,
上面链的文字表述中 “b8r8(6)” 表示数字6在第8宫第8行的区块,这是我习惯的写法。该区块由第8宫内涂色格的数组产生。链的末端是第2列涂色的数组。
③
第3步之后清理。
第4步:r4c9(1) =r4c1(1)-r3c1(1) =r1c2(1-6) =r1c7(6)-r6c7(6) ={b6n2579(9542)}. à r4c9<>9, r4c9<>4, r4c9<>2
末端是数组端。文中 b6n2579表示第6宫内自然顺序为2579格内的数组,是我习惯写法,因为宫内数组用rc方式标注太麻烦。
成文后发现此步可省,为了不改标题,留下了。
④
第5步:r5c1(3) =r5c4(3-8) =r5c2(8-1) =r1c2(1)-r3c1(1) ={r236789c1(976542)}. à r5c1<>9, r5c1<>6, r5c1<>2
链的末端是第1列的数组。
⑤
第6步:r1c2(6) =r1c7(6-3) =b9c7(3)-r9c9(3) =b7r9(6). à r8c2<>6
文中b9c7(3)是第9宫第7列的3的区块,链末端b7r9(6)是数字6在7宫9行的区块,来自于第9行涂色格的数组。
⑥
第6步之后清理。
第7步:r4c5(6=3)-b5c4(3) =r9c4(3)-r9c9(3) =r3c9(3-6) =r1c2(6) =b4c2(6). à r4c1<>6, r4c3<>6
链末端是第4宫区块。这一步如用鳍剑鱼还简单些,因为因为刻意要用链全解才如此。
⑦
第8步:r5c4(8) =r5c2(8)-r6c2(8=6)-b5r6(6) =r4c5(6)-r4c9(6=1)-r5c9(1) ={r5c389(962)}.à r5c4<>9, r5c4<>2
链末端还是数组。
⑧
第8步后清理。
第9步:r1c6(6) =r6c6(6-5) =r7c6(5)-r7c1(5) =b4c1(1)-r5c2(1) =r1c2(1), à r1c2<>6
其中第4宫第1列的数字1区块来自第1列涂色格的数组。
⑨
第9步后清理。
第10步:r6c5(8) =r2c5(8-5) =r1c5(5-3) =r1c6(3-2) =r1c3(2)-b4c3(2) =r6c1(2). à r6c5<>2
10步之后,再无需用任何技巧方法,用常规的区块和数组清理即可得到答案。
⑩
附. 本题答案图
------------------------------ 全文完 ----------------------------------
本解题过程全用链方法最多用到数组链,不计清理步,十步解题。虽无多少新意,做个贺岁文尚可。
原题:
网 (MALS) 法示意:
网步后常规清理图,本文解题从此图开始:
第1步.r1c7(6) =r1c2(6-1) =r5c2(1-8) =r6c2(8)-r6c7(8) =r4c7(8). à r4c7<>6 出数 r4c7=8。
①
第2步. r9c5(1)=r1c5(1)-r1c2(1) =r5c2(1-8) =r5c4(8)-r9c4(8) ={r9c13489(76532)}. à r9c5<>6, r9c5<>3 。
链的末端是数组(图中涂色的格)。
②
第3步:r5c2(8) =r5c4(8)-r9c4(8) =b8r8(6)-r8c2(6) ={r278c2(432)}. à r5c2<>3,
上面链的文字表述中 “b8r8(6)” 表示数字6在第8宫第8行的区块,这是我习惯的写法。该区块由第8宫内涂色格的数组产生。链的末端是第2列涂色的数组。
③
第3步之后清理。
第4步:r4c9(1) =r4c1(1)-r3c1(1) =r1c2(1-6) =r1c7(6)-r6c7(6) ={b6n2579(9542)}. à r4c9<>9, r4c9<>4, r4c9<>2
末端是数组端。文中 b6n2579表示第6宫内自然顺序为2579格内的数组,是我习惯写法,因为宫内数组用rc方式标注太麻烦。
成文后发现此步可省,为了不改标题,留下了。
④
第5步:r5c1(3) =r5c4(3-8) =r5c2(8-1) =r1c2(1)-r3c1(1) ={r236789c1(976542)}. à r5c1<>9, r5c1<>6, r5c1<>2
链的末端是第1列的数组。
⑤
第6步:r1c2(6) =r1c7(6-3) =b9c7(3)-r9c9(3) =b7r9(6). à r8c2<>6
文中b9c7(3)是第9宫第7列的3的区块,链末端b7r9(6)是数字6在7宫9行的区块,来自于第9行涂色格的数组。
⑥
第6步之后清理。
第7步:r4c5(6=3)-b5c4(3) =r9c4(3)-r9c9(3) =r3c9(3-6) =r1c2(6) =b4c2(6). à r4c1<>6, r4c3<>6
链末端是第4宫区块。这一步如用鳍剑鱼还简单些,因为因为刻意要用链全解才如此。
⑦
第8步:r5c4(8) =r5c2(8)-r6c2(8=6)-b5r6(6) =r4c5(6)-r4c9(6=1)-r5c9(1) ={r5c389(962)}.à r5c4<>9, r5c4<>2
链末端还是数组。
⑧
第8步后清理。
第9步:r1c6(6) =r6c6(6-5) =r7c6(5)-r7c1(5) =b4c1(1)-r5c2(1) =r1c2(1), à r1c2<>6
其中第4宫第1列的数字1区块来自第1列涂色格的数组。
⑨
第9步后清理。
第10步:r6c5(8) =r2c5(8-5) =r1c5(5-3) =r1c6(3-2) =r1c3(2)-b4c3(2) =r6c1(2). à r6c5<>2
10步之后,再无需用任何技巧方法,用常规的区块和数组清理即可得到答案。
⑩
附. 本题答案图
------------------------------ 全文完 ----------------------------------