8クイーン問題に挑戦

8クイーン問題をC言語で書いてみました!

元々はNクイーンの予定だったため、無駄なコードが多いのですが、Nクイーンはなかなかうまくいかず、結局複雑な8クイーンが完成しました(笑)

 

⇒8クイーンって?という方はこちらから(Wikipedia)

 

ソースコード

基本的にコメントアウトされているため、分かり易くはなっていると思います。

アルゴリズムとしては、

  1. 1行ずつ駒をランダムに配置
  2. 配置した場所に駒のフラグ(2)、駒の移動可能位置に移動フラグ(1)を配置
  3. もし駒が置けない場所(駒がある、もしくは他の駒が移動可能)なら位置を変更
  4. コマを置けない行があった場合、1行目からやり直し

という感じです。

因みに実行結果は、

  • 試行回数は観測したのは1回~1500回
  • 平均実行時間は約0.006秒

といった感じです。

 

また時間があればNクイーンにも挑戦してみたいと思います。

 

今回のブログ曲

今回投稿中に聴いていた曲はこちら!

アニメも見ましたが、個人的にはEDがドストライク過ぎて、最近頻繁に聴いています…


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です