プロが教える店舗&オフィスのセキュリティ対策術

【C言語 数独】

C言語で9×9の数独(ナンプレ)の問題を入力すると、自動でその解を表示するプログラムを作りたいのですが、仕様として、数独の解が複数あるようなプログラムの場合は、その解の個数と、その複数個の解を表示させたいです。
再帰を使うようなのですが、このようなプログラムの作り方がわかる方がいたらおしえていただきたいです。

A 回答 (1件)

それはC言語でのプログラムの作り方・・・ではなく、まずは「9×9の数独の解き方」の処理アルゴリズムを考えそれを明文化する事でしょう。

使用したいプログラミング言語でどうするかはその次の段階のお話です。
まずは人はどう考えて解いているかですね。
そして、それをそのまま実装すればよいのか、単純な処理を繰り返すことが得意なコンピューターならではの解き方が有るのか無いのか。その辺を考える事かと思います。

再帰に関しては例えば「C言語 再起呼び出し」といったキーワードで検索するとC言語を解説したWebサイトの該当ページが簡単にヒットするように思います。試されていますか?
変数のメモリ領域をしっかり呼び出されるごとに確保し、処理を終えたら順に開放することを間違いなく行えばさほど難しいものではありません。
なお、再起は端から順番に試して行って正しい物をあぶりだしていくやり方になると思いますが、もう一つのやりかたとして幾つもの候補を一斉に試すという方法もあると思います。個々の候補を1枚のスレッドとして実行し、それぞれから「自分は駄目だった」、「自分はうまくいった」という結果を受け、うまく行ったところは次の処理に行くというやりかたですね。
複数解がある場合はこの方が効率的なように思います。

参考まで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!