探索順列\(n!\)通りの全探索を行いたい時に順列が用いられます。順列(permutation)とは、n個のものを順番に並べるのは何通りあるかを考える問題です。n個全てを区別できるなら、\(n!\)通りの並べ方があります。爆発的に計算量が増加するのが特徴で、\(n=10\)前後の計算に数秒かかってしまいます。(参考:計算量同士の比較と入力サイズによる比較)アルゴリズム機能が充実しているプログラミング言語には、順列の全ての場合を生成するライブラリがあることが多いです。それゆえアルゴリズムとしては単純で以下のようになります。n-1\)までの数について、全ての並べ方を1行ごとに出力するプログラムを考えてみましょう。例Pythonにはitertoolsモジュールのpermutations()関数を用いることで順列を生成することができます。全ての並べ方を一度に生成するのではないので、メモリ消費は抑えられますが、最初のコンテナは昇順にソートされている必要があります。コメントをキャンセルメールアドレスが公開されることはありません。*次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。