数字パズルとは縦横9x9コマ、合計81コマに1~9の数字を縦一列、横一列、
3x3のブロック毎に重複しないで埋めてゆくパズル。朝日の土曜版に毎週載っ
ている数字パズルは数独と言っているが、今週分は最難関の難易度5。
これまでのプログラムは難易度4が限界で難易度5は解けなかった。
空のカラムにあらかじめ”123456789”の文字で埋めておき、判って
いる数字を使って縦、横、ブロックごとにその数字を消してゆく。各カラムの
消されずに残った数字が1個になれば、そのカラムの答えになる。その数字を
使ってさらに縦、横、ブロックごとにその数字を消してゆく。すべてのカラム
がわかるまでこれを繰り返す。
ところが難易度5の問題はこのプログラムだと途中で止まってギブアップ。
今週の問題では右から1列目、上から3行目のカラムが”2”となるだけ。
今まで、追加する条件でプログラム化がしやすい方法ががなかなか思いつか
なかったのだが、今回やや強引な方法をとることにした。
残りの数字が2個のところを選び、それぞれの数字を仮置きして答えが出るか
試してみるプログラムを加えてみた。
今週の問題では残りの数字が2個になるのは3箇所(赤丸の箇所)。
それぞれ2文字あるから最大6回試すことになる。
果たして、2個目のカラムの2番目の数字、つまり4回目の試考で答えが見つ
かった。答えはこれだ。 しかし・・・・
この無力感は何だ!
筆記で解くとたぶん半日はかかるだろう。それがわずか10数秒。
プログラムを組むのに試行錯誤を繰り返しそれ以上はかかった。
おまけに答えがわかったところで酬いなし。
プログラムを組む楽しさはあるが大いなる自己満足で終わる。
3x3のブロック毎に重複しないで埋めてゆくパズル。朝日の土曜版に毎週載っ
ている数字パズルは数独と言っているが、今週分は最難関の難易度5。
これまでのプログラムは難易度4が限界で難易度5は解けなかった。
空のカラムにあらかじめ”123456789”の文字で埋めておき、判って
いる数字を使って縦、横、ブロックごとにその数字を消してゆく。各カラムの
消されずに残った数字が1個になれば、そのカラムの答えになる。その数字を
使ってさらに縦、横、ブロックごとにその数字を消してゆく。すべてのカラム
がわかるまでこれを繰り返す。
ところが難易度5の問題はこのプログラムだと途中で止まってギブアップ。
今週の問題では右から1列目、上から3行目のカラムが”2”となるだけ。
今まで、追加する条件でプログラム化がしやすい方法ががなかなか思いつか
なかったのだが、今回やや強引な方法をとることにした。
残りの数字が2個のところを選び、それぞれの数字を仮置きして答えが出るか
試してみるプログラムを加えてみた。
今週の問題では残りの数字が2個になるのは3箇所(赤丸の箇所)。
それぞれ2文字あるから最大6回試すことになる。
果たして、2個目のカラムの2番目の数字、つまり4回目の試考で答えが見つ
かった。答えはこれだ。 しかし・・・・
この無力感は何だ!
筆記で解くとたぶん半日はかかるだろう。それがわずか10数秒。
プログラムを組むのに試行錯誤を繰り返しそれ以上はかかった。
おまけに答えがわかったところで酬いなし。
プログラムを組む楽しさはあるが大いなる自己満足で終わる。