数独日誌121013
Nice Loopという手筋があります。ミシチャンさんのサイトでは「超弩級」という、「超上級」の上をいく分類で、「一般には難易度が極めて高い問題の解法に使用されています」とあります。
http://www.geocities.jp/master_mishichan/ultra.html
Tachyonさんから最初のNice Loopを使う問題を出していただいたのが、数独日誌110806のコメント欄だと思われます。それから1年以上、計18回(だと思うのですが)にわたって、提供し続けていただきました。本当にありがとうございます。
http://ikachan.cocolog-nifty.com/blog/2011/08/110806-1a7b.html
Nice Loopを使う問題というのはなかなかお目にかかれないと思います。私は最初ミシチャンさんのサイト説明もよくわからず、Tachyonさんの問題に対しても、とんちんかんな質問をしていた記憶がありますが、石の上にも3年、だんだん慣れてきて、特に強リンクの数字(ある数字が行or列orブロックに2つしか入らない状態)に印をつけることを教わってからは、だいぶうまく探せるようになりました。
読者のみなさんも、ステップバイステップの問題構成になっているので、順を追って練習していくときっと上達できると思います。是非活用していただければと思います。
Grouped Nice Loopがどういう形かはよくわかりませんが、次回のシリーズを楽しみに待ちたいと思います。
| 固定リンク
「趣味」カテゴリの記事
- 数独日誌241201(2024.12.01)
- 数独日誌241124(2024.11.24)
- 数独日誌241117(2024.11.17)
- 数独日誌241110(2024.11.10)
- 数独日誌241103(2024.11.03)
コメント
ikachanさんへ、
> Grouped Nice Loopがどういう形かはよくわかりませんが、
> 次回のシリーズを楽しみに待ちたいと思います。
Grouped Nice Loopというのは、
ミシチャンのサイトで言うGrouped X-Cycle(http://www.geocities.jp/master_mishichan/hyper2.htmlの3)
を含めたNiceLoopの事です。
Grouped X-Cycleの小規模な形には、Grouped 2-String KiteとEmpty Rectangleがあります。
Grouped 2-Stringの場合は、あるブロックにある同数字の候補の2つのグループが、ブロック(Kite本体)内で互いに弱リンクで結ばれ、ブロック外へは、それぞれ強リンク(Kiteの糸)の一端となっています。
Empty Rectangleの場合は逆に、ブロック内で互いに強リンク、
ブロック外へは、それぞれ弱リンクとなります。
Grouped 2-String Kiteについては前に紹介しましたので、
Empty Rectangle
(ミシチャンでは、補足的なワザとして、ページの最後に、応用例が出ていますが、Hodokuではズバリ、その例の形そのものを「Empty Rectangle」と呼んでいます。)
で解ける問題を紹介したいと思います。
[10]を除いて、以下の問題はどれも基本的な技(N国同盟を含む)とEmptyRectangle(HoDoKuのStandard Pattern)一発で解けます。
是非、ミシチャン(http://www.geocities.jp/master_mishichan/hyper2.html)
の「4. Empty Rectangle」およびHodoku(http://hodoku.sourceforge.net/en/tech_sdp.php#er)
を参考にしながら解いてみてください。
EmptyRectangle[1](いきなり使えます)
3......4..596347.14.7....3.5..71..949.1.2.8..7...95.12.7..6.4.9.349.2.6.69..4...3
EmptyRectangle[2](いきなり使えます)
.9..2...6...9.3.25..56.1.4.5.4.....1.........9.....7.8.4.8.9...3581.4...1.9.5..8.
EmptyRectangle[3](いきなり使えます)
.86..5..1.45.....8...8.45...6..89..2.9214685.8..3...9...9..8.........78.6.84..23.
EmptyRectangle[4]
572849613.69.......1....95.7....128912.97..3669.2......57.9......6....9.9.132.765
EmptyRectangle[5]
.8.4.....5498632711.3..58464....21.............86....59.53..6.48341.67......49...
EmptyRectangle[6]
6854139273.........7259...37.3.64....6.35.79....17.346....416.9......2.59....5814
EmptyRectangle[7]
85.962..7..738459.39.1578..4..679..5.6.823.7.27.541..87..296..3.3.4187.....735.89
EmptyRectangle[8]
2.364...7.14..96.......1..487.4...6.93..6..48.4.....724..5.67....79.4.5.3...2.4.6
EmptyRectangle[9]
..58...6.2...4.5.88....51...392.8..1.........4..39687.3.47....99.6.837.4.7....3..
EmptyRectangle[10] (EmptyRectangle一発とは限りません)
.8...47.27.9...8........3.11..84.......5931.......2..46.2...4....3...2.88..42..73
投稿: Tachyon | 2012年11月23日 (金) 12時35分
すみません。HoDoKuの読み込みコードをそのままだしてしまいました。問題は以下のとおりです。
EmptyRectangle[1](いきなり使えます)
300 000 040
059 634 701
407 000 030
500 710 094
901 020 800
700 095 012
070 060 409
034 902 060
690 040 003
EmptyRectangle[2](いきなり使えます)
090 020 006
000 903 025
005 601 040
504 000 001
000 000 000
900 000 708
040 809 000
358 104 000
109 050 080
EmptyRectangle[3](いきなり使えます)
086 005 001
045 000 008
000 804 500
060 089 002
092 146 850
800 300 090
009 008 000
000 000 780
608 400 230
EmptyRectangle[4]
572 849 613
069 000 000
010 000 950
700 001 289
120 970 036
690 200 000
057 090 000
006 000 090
901 320 765
EmptyRectangle[5]
080 400 000
549 863 271
103 005 846
400 002 100
000 000 000
008 600 005
905 300 604
834 106 700
000 049 000
EmptyRectangle[6]
685 413 927
300 000 000
072 590 003
703 064 000
060 350 790
000 170 346
000 041 609
000 000 205
900 005 814
EmptyRectangle[7]
850 962 007
007 384 590
390 157 800
400 679 005
060 823 070
270 541 008
700 296 003
030 418 700
000 735 089
EmptyRectangle[8]
203 640 007
014 009 600
000 001 004
870 400 060
930 060 048
040 000 072
400 506 700
007 904 050
300 020 406
EmptyRectangle[9]
005 800 060
200 040 508
800 005 100
039 208 001
000 000 000
400 396 870
304 700 009
906 083 704
070 000 300
EmptyRectangle[10] (EmptyRectangle一発とは限りません)
080 004 702
709 000 800
000 000 301
100 840 000
000 593 100
000 002 004
602 000 400
003 000 208
800 420 073
投稿: Tachyon | 2012年11月23日 (金) 12時50分
申し訳ありません。[1][2][3]で、EmptyRectangleが、いきなり使えるというのは誤りでした。
お詫び致します。
但し、[3]は、局部限定の後、すぐに使えます。
投稿: Tahcyon | 2012年11月23日 (金) 16時37分
Groupedについてミシチャンのサイトを調べているうちに、面白いことに気がつきましたので、報告いたします。
http://www.geocities.jp/master_mishichan/other.html
にある Headless Fishなのですが、使われている例でいうと、r4c23とr6c23をそれぞれグループと考えれば、
Headless Fishは、一種のSword Fishの連続タイプであることがわかります。
そう考えれば、Xが入らないマスは、r5c123だけでなく、r135789c6とr135789c9にもXが入らないことになります。
もしこの部分にXがはいれば、r4c6とr6c9のXは除外され、
左中ブロックがr4とr6について両方Xが必ずなければならなくなり、矛盾します。
ちなみに問題の左中ブロック部分は長方形の部分になる必要はありません。
(http://www.geocities.jp/master_mishichan/hyper2.htmlにある「1.1 X-cycle (連続ループ)」を参照)
投稿: Tachyon | 2012年11月24日 (土) 11時12分
お久しぶりです。DokuZukiです。TachyonさんがHeadless Fishについて書かれていたので、コメントしたいと思います。Headless Fishについてはよく分かりませんが、Tachyonさんが指摘された除外方法はFranken Swordfishに該当すると思います。そのFranken Swordfishには、大まかに次の2つのタイプがあるようです。
A1 A2
-/- --- 0*0 -*- --- 0/0
-/- --- 0*0 -*- --- 0/0
-/- --- 0*0 -*- --- 0/0
-/- --- /-/ -*- --- *-*
*0* *** 0*0 /0/ /// 0/0
-/- --- /-/ -*- --- *-*
-/- --- /-/ -*- --- *-*
*0* *** 0*0 /0/ /// 0/0
-/- --- /-/ -*- --- *-*
※ /にある数0が入らないものとすると、*から0を除外できます。
Tachyonさんの除外方法はA1のタイプに該当します。また、A1の/と*を入れ替えるとA2のタイプになります。
せっかくなので、A1を証明したいと思います。A1でr5c2=0あるいはr8c2=0と仮定したのが次の2つの図です。
A1-1 A1-2
-/- --- 0*0 -/- --- 0*0
-/- --- 0*0 -/- --- 0*0
-/- --- 0*0 -/- --- 0*0
*/* --- /-/ -/- --- /*/
*0* *** *** *** *** 0*0
*/* --- /-/ -/- --- /*/
-/- --- /*/ */* --- /-/
*** *** 0*0 *0* *** ***
-/- --- /*/ */* --- /-/
Locked Candidates Type 1 (Pointing)の連続適用等で*から0を除外できます。この2つの図で共通する*がA1の*になります。また、A2の場合もr123c7のどこかに0がある、あるいはr123c9のどこかに0があると仮定すれば証明できます。
Franken Swordfishはロジック的にはこのようにSwordfishとほとんど変わらないので、Swordfishの亜種と言えると思います。従って、Franken SwordfishでもSwordfishと同様にSashimiやFinnedを考えることができます。ということで、Sashimi/Finned Franken Swordfishのバリエーションを考えてみました。まず次のB1-1~B2-3がSashimi Franken Swordfishのパターンです。
B1-1 B1-2 B1-3
-/- --- 0-0 -/- --- 0-0 -/- --- 0-0
-/- --- 0-0 -/- --- 0-0 -/- --- 0-0
-/- --- 0-0 -/- --- 0-0 -/- --- 0-0
-/- --- /-/ -/- --- /-/ -/- --- /-/
-0- --- 0-0 -0- --- 0-0 -0- --- 0-0
-/- --- /-/ -/- --- /-/ -/- --- /-/
-/- --- /-/ -0- --- /-/ -/- --- 0-0
*/* --- 0-0 */* --- 0-0 -0- --- /*/
-0- --- /*/ -0- --- /-/ -/- --- 0-0
B2-1 B2-2 B2-3
--- --- 0/0 --- --- 0/0 --- --- 0/0
--- --- 0/0 --- --- 0/0 --- --- 0/0
--- --- 0/0 --- --- 0/0 --- --- 0/0
*-- --- --- --- --- --- --- --- ---
/0/ /// 0/0 /0/ /// 0/0 /0/ /// 0/0
*-- --- --- --- --- --- --- --- ---
-*- --- --- -*- --- --- --- --- #-*
0// /// 0/0 0/0 /// 0/0 /0/ /// 00/
-*- --- --- -*- --- --- --- --- #-*
※ B2-3の#は次のFinned Franken Swordfishで除外できる箇所ですが、併記しました。
それから、次のC1-1~C2-3がFinned Franken Swordfishのパターンです。
C1-1 C1-2 C1-3
-/- --- 0-0 -/- --- 0-0 -/- --- 0-0
-/- --- 0-0 -/- --- 0-0 -0- --- 0*0
-/- --- 0-0 -/- --- 0-0 -/- --- 0-0
-/- --- /-/ -/- --- /-/ -/- --- /-/
-0- --- 0-0 -0- --- 0-0 -0- --- 0-0
-/- --- /-/ -/- --- /-/ -/- --- /-/
-0- --- /-/ -/- --- 0-0 -/- --- /-/
*0* --- 0-0 -0- --- 0*0 -0- --- 0-0
-0- --- /-/ -/- --- 0-0 -/- --- /-/
C2-1 C2-2 C2-3
--- --- 0/0 --- --- 0/0 --- --- 0/0
--- --- 0/0 --- --- 0/0 -*- --- 000
--- --- 0/0 --- --- 0/0 --- --- 0/0
--- --- --- --- --- --- --- --- ---
/0/ /// 0/0 /0/ /// 0/0 /0/ /// 0/0
--- --- --- --- --- --- --- --- ---
-*- --- --- --- --- *-* --- --- ---
000 /// 0/0 /0/ /// 000 /0/ /// 0/0
-*- --- --- --- --- *-* --- --- ---
これら以外にもバリエーションはあるかと思いますが、現在、私が把握できているのはここまでです。
以上、参考になればと思います。
投稿: DokuZuki | 2012年11月25日 (日) 18時39分
DokuZukiさん(旧パズル好きさん)へ
コメントありがとうございます。
TachyonさんとDokuZukiさんのやりとりは、レベルが高く私にはなかなか解読するエネルギーが湧いてこないのですが、いつか理解できたらと思います。
投稿: ikachan | 2012年11月25日 (日) 21時27分
ikachanさんへ
コメントありがとうございます。Franken Swordfish自体はSwordfishの変型と考えればよいので、それほど難しくないかと思います。
ところで、HoDoKuにはFranken SwordfishとFinned Franken Swordfishは実装されていますが、Sashimi Franken Swordfishは実装されていないようです。恐らく、Sashimi Franken SwordfishはFinned Franken Swordfishの特殊な場合でしかなく、Finned Franken Swordfishで十分事足りるからだと思います。
それと、前回の説明図が少し分かりづらかったので、Finned Franken Swordfishの説明図だけ修正します。
C1-1 C1-2 C1-3
-/- --- 0-0 -/- --- 0-0 -/- --- 0-0
-/- --- 0-0 -/- --- 0-0 -F- --- 0*0
-/- --- 0-0 -/- --- 0-0 -/- --- 0-0
-/- --- /-/ -/- --- /-/ -/- --- /-/
-0- --- 0-0 -0- --- 0-0 -0- --- 0-0
-/- --- /-/ -/- --- /-/ -/- --- /-/
-F- --- /-/ -/- --- F-F -/- --- /-/
*0* --- 0-0 -0- --- 0*0 -0- --- 0-0
-F- --- /-/ -/- --- F-F -/- --- /-/
C2-1 C2-2 C2-3
--- --- 0/0 --- --- 0/0 --- --- 0/0
--- --- 0/0 --- --- 0/0 -*- --- 0F0
--- --- 0/0 --- --- 0/0 --- --- 0/0
--- --- --- --- --- --- --- --- ---
/0/ /// 0/0 /0/ /// 0/0 /0/ /// 0/0
--- --- --- --- --- --- --- --- ---
-*- --- --- --- --- *-* --- --- ---
F0F /// 0/0 /0/ /// 0F0 /0/ /// 0/0
-*- --- --- --- --- *-* --- --- ---
FinをFで表してみました。いずれもFinがなければFranken Swordfishが成立します。そのFranken Swordfishで除外できる箇所の中でFinからも見える箇所が、Finned Franken Swordfishで除外できる箇所になります。
投稿: DokuZuki | 2012年11月26日 (月) 18時34分
DokuZukiさんへ、
仕事が忙しくて大変、遅れましたが、
Franken Fishの詳しい解説ありがとうございます。
そのFishには2つのタイプがあるとのことですが、その両方のタイプを組み合わせて、
以下のようなタイプが考えられると思います。
(/に、ある数字0が入らないものとすると、*から0を除外できます)
--- --- 0*0
--- --- 0*0
--- --- 0*0
--- --- /-/
--- --- /-/
--- --- /-/
000 *** 0*0
/// --- /-/
000 *** 0*0
ところで、現在Sudopediaがハッキングされていて閲覧できないのですが、そのコピーを入手できるサイトか、
Sudopediaよりも詳しいサイトを知っていれば、教えていただけないでしょうか?
投稿: Tachyon | 2012年12月15日 (土) 10時52分
Tachyonさんへ
その図では次のようにr8c8からも除外できますね。
--- --- 0*0
--- --- 0*0
--- --- 0*0
--- --- /-/
--- --- /-/
--- --- /-/
000 *** 0*0
/// --- /*/
000 *** 0*0
また、/と*を入れ替えたパターンも成立します。いずれもFranken Swordfishと言えると思いますが、Locked Candidates(局部限定)でも除外できる箇所なので、余り存在価値はないと思います。
Sudopediaについては偶然にも今朝、そのミラーサイトを発見したばかりです。
http://sudopedia.enjoysudoku.com/Solving_Technique.html
画像もすべて揃っているようです。
他にもこんなところが参考になると思います。
http://www.830pm.com/sudoku/strategy.htm
http://www.sudocue.net/guide.php
http://www.sudokuwiki.org/Strategy_Families
http://www.sudokuone.com/
投稿: DokuZuki | 2012年12月15日 (土) 14時10分
DokuZukiさんへ、
> その図ではr8c8からも除外できますね。
> Locked Candidates(局部限定)でも除外できる箇所なので、
> 余り存在価値はないと思います。
なるほどそうでした。
Sudopediaの代わりのサイトについても、
とっても役に立つ情報をありがとうございます。
投稿: Tackyon | 2012年12月15日 (土) 15時07分
名前を間違えてしまいました。
TackyonはTachyonです。
投稿: Tachyon | 2012年12月15日 (土) 15時32分
DokuZukiさんへ、
前の私のコメントのタイプは、Franken Swordfishでは、存在価値はありませんでしたが、
Swordfishの拡張であるJellyfishなら、存在価値はあるのでは?
たとえば以下のように:
(/に、ある数字0が入らないものとすると、*から0を除外できます)
--- -/- 0*0
--- -/- 0*0
--- -/- 0*0
--- -/- /-/
*** *0* 0*0
--- -/- /-/
000 *0* 0*0
/// -/- /-/
000 *0* 0*0
投稿: Tachyon | 2012年12月22日 (土) 06時46分
Tachyonさんへ
前回のコメントで「/と*を入れ替えたパターンも成立します。」と書きましたが、そのパターンは元のパターンの行・列を入れ替えたものでしかないので、余り意味がなかったですね。書かなかったことにしてください。
また、「存在価値がない」というの書き方は失礼でしたね。ごめんなさい。今回Tachyonさんが考えられたFranken Jellyfishのパターンは、十分存在価値があると思います。流石です。
Franken Swordfish/Jellyfishのパターンについてはこちらで確認できます。
http://forum.enjoysudoku.com/the-ultimate-fish-guide-t4993.html
Franken Swordfishについては、私が紹介した2パターンを確認できます。また、Franken Jellyfishについては、反転パターンを含めた6パターンを確認できます。Tachyonさんが考えられたパターンはこの中に入っていないので、Franken Jellyfishには少なくとも7パターンが存在すると言えそうですね。
投稿: DokuZuki | 2012年12月23日 (日) 12時17分
Empty Rectangleを使う問題の[4][5][6]をやりました。
[4]
r9c26に4の強リンクがあります。r4c2が4だと、中中ブロックのEmpty Rectangleで迂回され、中中ブロックでは第6列にしか4が入らず、結局r9c26のどちらにも4が入らなくなってしまいます。これでr4c2から4が除外でき、このマスは3で確定します。
[5]
r39c4に2の強リンクがあります。r3c2が2だと、左下ブロックのEmpty Rectangleで迂回され、左下ブロックでは第9行にしか2が入らず、結局r39c4のどちらにも2が入らなくなってしまいます。これでr3c2から2が除外でき、このマスは7で確定します。
[6]
r3c68に8の強リンクがあります。r2c9が8だと、右中ブロックと中中ブロックのEmpty Rectangleで二重に迂回され、右中ブロックで8が入るのは第4行だけとなり、その結果中中ブロックで8が入るのが第6列だけとなります。結局r3c68のどちらにも8が入らなくなってしまいます。これでr2c9から8が除外でき、このマスは1で確定します。
投稿: ikachan | 2012年12月29日 (土) 19時20分
ikachanさんへ、
[4][5]については想定どおりです。
[6]について想定では、r4c8が8だと、中中ブロックのEmpty Rectangleで迂回され、中中ブロックでは第6列にしか8が入らず、結局r3c68のどちらにも8が入らなくなってしまいます。これでr4c8から8が除外でき、このマスは5で確定としました。
投稿: Tachyon | 2012年12月30日 (日) 13時54分
DokuZukiさんへ、
明けましておめでとうございます。
> 「存在価値がない」というの書き方は失礼でしたね。
> ごめんなさい。
いえいえ、そのように遠慮なくおっしゃっていただいた方が助かります。
ところで、
http://forum.enjoysudoku.com/the-ultimate-fish-guide-t4993.html
を見てもよくわからないのですが、以下の形は在りえるでしょうか、
また在ったとしても存在価値はありますでしょうか?
多分、Starfish(Squirmbag)の一種だと思うのですが...
(/に、ある数字0が入らないものとすると、*から0を除外できます(?))
--- 0*0 0*0
--- 0*0 0*0
--- 0*0 0*0
000 0*0 0*0
/// /-/ /-/
000 0*0 0*0
000 0*0 0*0
/// /-/ /-/
000 0*0 0*0
投稿: Tachyon | 2013年1月 5日 (土) 13時12分
ikachanさん、Tachyonさんへ
明けましておめでとうございます。今年もたまにコメントさせて頂きますので、よろしくお願いします。
さて、Tachyonさんの示された図ですが、中上ブロックを1行、右上ブロックを1行とみなすと、対象行が6行あると考えることができます。また、左中ブロックを1列、左下ブロックを1列とみなすと、対象列が6列あると考えることができます。従って、これは6×6のFranken Whaleの図と言えると思います。要するに、次の図のWhale(6×6)と同等ということです。
/*/ 0*0 /*/
/-/ /-/ /-/
/*/ /*/ 0*0
0*/ 0*0 0*0
/-/ /-/ /-/
0*/ 0*0 0*0
/*0 0*0 0*0
/-/ /-/ /-/
/*0 0*0 0*0
Franken Fishは、このようにブロック内のGroupedの強・弱リンクを1行あるいは1列とみなして考えることにより、Basic Fishと同等のイメージで理解できると思います。
ただ、Tachyonさんの図では次のX-Wingが成立しているので、余り有用ではなさそうです。
--- -*- -*-
--- -*- -*-
--- -*- -*-
--- -*- -*-
/// /0/ /0/
--- -*- -*-
--- -*- -*-
/// /0/ /0/
--- -*- -*-
投稿: DokuZuki | 2013年1月 6日 (日) 16時57分
DokuZukiさんへ、
> Tachyonさんの図では次のX-Wingが成立しているので、
> 余り有用ではなさそうです。
うーん、残念。
とにかく調べてくださって有難うございます。
投稿: Tachyon | 2013年1月 7日 (月) 17時59分