プログラミング251 pages

第8回 pythonでNQueen(エイトクイーン)対象解除法(1)

第8回 pythonでNQueen(エイトクイーン)対象解除法(1)

pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第8回目。今回から対象解除法が登場します。解を見てみると左右反転だったり90度、180度回転すると同じものがあります。この性質を利用して探索回数を減らそうというアルゴリズムです。今回は対象解除法の概要を説明します。 対象解除法 今回から対象解除法を取り扱います。 解を見てみると左右反転だったり90度、180度回転すると同じものがあります。この性質を利用して探…

第7回 pythonでNQueen(エイトクイーン)バックトラック(3)

第7回 pythonでNQueen(エイトクイーン)バックトラック(3)

pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第7回目。今回はバックトラックについて図で示しながら詳細な動きを説明します。バックトラックは上下左右対角線上のフラグをチェックするので探索がより効率よくなっています。 バックトラック 今回も引き続きバックトラックを説明していきたいと思います。 前回はプログラムの概要を説明しましたが、今回はnqueenメソッドの…

(2)【cat】シェルスクリプトコマンド活用紹介

(2)【cat】シェルスクリプトコマンド活用紹介

「cat」は、「conCATenate(つなぐ、連結する)」のcatです。ファイルを連結するためのコマンドですが、ファイルの内容を表示する際によく使われます。 catコマンド ファイルの内容を表示する ファイルの内容を行番号付きで表示する 複数ファイルを連結して1つのファイルにする 概要 「cat」は、「co…

第6回 pythonでNQueen(エイトクイーン)バックトラック(2)

第6回 pythonでNQueen(エイトクイーン)バックトラック(2)

pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第6回目。今回はバックトラックについて説明します。解を出すmainメソッドなどプログラムの概要を説明します。 mainメソッド概要 今回は前回から引き続きバックトラックを説明していきたいと思います。 プログラムソースは以下のURLにあります。 https://github.com/suzukiiichiro/N-Queens/blob/master/03Python/py03_nqueen.py 429-4…

(1)【echo】シェルスクリプトコマンド活用紹介

(1)【echo】シェルスクリプトコマンド活用紹介

「echo」はメッセージなどを表示するコマンドです。「echo メッセージ」でメッセージを表示します。「echo $変数名」で環境変数やシェル変数を表示する際にも使用います。 echoコマンド メッセージや環境変数を表示します。 概要 「echo」はメッセージなどを表示するコマンドです。 $echo メッセージ でメッセージを表示しま…

第5回 pythonでNQueen(エイトクイーン)バックトラック(1)

第5回 pythonでNQueen(エイトクイーン)バックトラック(1)

pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第5回目。今回はバックトラックについて説明します。 バックトラック 今回はバックトラックを説明していきたいと思います。 今回のバックトラックのロジックは前回の配置フラグの拡張版です。 配置フラグは上…

第4回 pythonでNQueen(エイトクイーン)配置フラグ(制約テスト高速化)(2)

第4回 pythonでNQueen(エイトクイーン)配置フラグ(制約テスト高速化)(2)

pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第4回目。今回は配置フラグ(制約テスト高速化)について図で示しながら詳細な動きを説明します。再帰とfor文が絡み合っている時にどうやって動くのかを中心に説明します。 配置フラグ(制約テスト高速化) 今回も引き続き配置フラグ(制約テスト高速化)を説明していきたいと思います。 前回はプログラムの概要を説明しました…

第3回 pythonでNQueen(エイトクイーン)配置フラグ(制約テスト高速化)(1)

第3回 pythonでNQueen(エイトクイーン)配置フラグ(制約テスト高速化)(1)

pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第3回目。今回は配置フラグ(制約テスト高速化)について説明します。 配置フラグ(制約テスト高速化) 前回は全くアルゴリズムを使わないで全パターン1行に1つずつクイーンを設置するブルートフォース 力任せ探索でした。…

【grep/sed/awkも】ざっくりわかるシェルスクリプト5」

【grep/sed/awkも】ざっくりわかるシェルスクリプト5」

この記事はシェルスクリプトを45分でざっくりマスターできるチュートリアルです。bashスクリプト「Hello, World」から、ifステートメントなどの条件分岐、while, for, untilループをはじめ、シェルスクリプトの効率的なデバッグ手法の紹介など、シェルスクリプトを網羅的かつ短時間で学習することができます。 …

第2回 pythonでNQueen(エイトクイーン)ブルートフォース 力任せ探索(2)

第2回 pythonでNQueen(エイトクイーン)ブルートフォース 力任せ探索(2)

pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第2回目。再帰の挙動などアルゴリズムを使わないブルートフォース力任せ探索についてプログラムの詳細部分を説明します。 グローバル変数 今回は、前回からの引き続きでブルートフォース力任せ探索のプログラムの詳細部分を説明します。 プログラムのソースは以下のURLをご…

第1回 pythonでNQueen(エイトクイーン)ブルートフォース 力任せ探索(1)

第1回 pythonでNQueen(エイトクイーン)ブルートフォース 力任せ探索(1)

pythonを勉強しながらNQueen(エイトクイーン)問題を解いていきます。今回は第1回目。アルゴリズムを使わないブルートフォース力任せ探索について説明します。 Nクイーン問題とは Nクイーン問題とは、チェスの盤面にクイーンを1行に1個ずつ効き筋に当たらないように置いていこうという問題です。 https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%A4%E3%83%88%E3%83%BB%E3%82%AF%E3%82%A4%E3%83%BC%E3%83%B3 Nクイーン…