すると使われていない数字1,7,8,9のいずれかが入ることがわかる。 rand9: 1~9までの数字が順に入った配列を作成し、その中身をシャッフルすることで、1~9までの数字がランダム順に格納された配列を作成する関数。
14count0: 配列内の0の数を数える関数で、作成した問題の空欄の数を調べるのに使用している。 。
この組み合わせの数が多ければ高度な推理であり、少なければ容易となる。 今後の展望としては、他に難易度を変化させる手法が無いか、また、作成した問題の難易度を客観的に評価する方法がないかを模索していきたい。
ここで、check関数を説明する。 しかし、ここでネックとなるのが、数独の難易度は必ずしも空欄の数ではないという事である。
5下図のAX1行、1列目に入る数字を考える。
基本方針としては全てのマスが埋まった完成形を作成し、そこに穴を開けていくことで問題を作成する事を考えた。 その他の関数は次のことを行う。 一行で同じ数字を使ってはいけない• これは今後の課題としたい。
12従ってAXの左上の空欄には1が入る。
社会プリント:未対応 対応の遅れにより、ご利用の皆様にはご迷惑をおかけして申し訳ございません。 こだわり派の方はこのボタンを使わずに最後まで解いてみてください。 数字マスのハイライト機能 数字が置かれたマスを選択すると、同じ数字が入っているマスに色がつき、考えやすくなります。
14そのためAXの2,3行目には1を入れる事ができない。
対応完了までの間、ご利用の際は恐れ入りますが、お使いの教科書等と照合して内容をご確認の上、用途に合わせてお使い頂きますようお願い致します。 これに新たな制限を付け加えて生まれたのが数独である。
10従ってAXは左上のマス以外には1を入れることができない。
日本以外の国ではSudokuという呼称が一般的だが、アメリカでは、Number Place両方とも使われている。 しかし、右のCXを見てみると、1が既に使われているため、CX1行目の右の3つの空欄には1を入れることができない。
それをランダム、順番指定共に各1000問ずつ問題を生成し、その中で最も穴の数が多かったものをピックアップしたのが上図となる。 図の左に対し、右のように全ての空欄を条件に沿うよう埋めることができればゲームクリアとなる。
7松岡 毅 OpenMPによる数独パズルの並列化2007 立命館大学 卒業論文• 同様に下を見るとAYの2列目、AZの3列目にも1が使われているため、1が入れられるのは左上のマスのみとなる。 各行、列とブロックに1から9まで含まらなければならないことに注意してください。