
次のようなプログラムをC++で書こうと思っているのですが、
どうも方法が思い浮かびません。
よいやり方、定番のやり方などがありましたら教えてください。
---------------------------------
n個の要素があるとき、
そのn個で出来る順列組み合わせ(計(n!)通り)を全て出力する。
例えばa[4] = {'A', 'B', 'C', 'D'}なら
順列組み合わせは
A B C D
A B D C
A C B D
A C D B
A D B C
A D C B
B A C D
B A D C
B C A D
B C D A
B D A C
B D C A
・
・
・
D C A B
D C B A
の、計24通り
No.2ベストアンサー
- 回答日時:
「順列組合せ」ではなく「順列の生成」ですね。
アルゴリズムの原理を知りたければ次のWlframのサイトでわかりやすく説明しています。下のほうのところで、再帰を使ったものが例示されています。
http://mathworld.wolfram.com/Permutation.html
ソースを見たいなら、
http://www.merriampark.com/perm.htm
あたりで。
ただし、C++では、順列生成は標準ライブラリに入っています。
next_permutation,prev_permutation
を使って下さい。
http://www005.upp.so-net.ne.jp/episteme/html/stl …
No.1
- 回答日時:
おはようございます。
#include <algorithm>
をした上で、
std::next_permutation(a, a + 4);
がfalseを返すまで繰り返し呼び出せば良いでしょう。
配列が降順にソートされていれば、代わりに
std::prev_permutation(a, a + 4);
を使います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
あるディレクトリ内のファイル...
-
VBA基本構文の作り方 2列の...
-
昇順ソート
-
サイトで価格順で表示するなど...
-
VB.NETでファイル名順にファイ...
-
文字列をソートする方法
-
Fortran77で多次元配列を並び替...
-
C# DataTableの行をソートしてD...
-
C言語のCSV形式からのソート
-
C言語でアナグラムを求めるプロ...
-
関数から配列を返すには?
-
C言語 配列の長さの上限
-
VBAのプログラムで、DIAG = 1# ...
-
char*を初期化したいのですが
-
Integer変数をカラにしたいので...
-
「#undef」と「#define」の使い...
-
define で 配列
-
複数の選択範囲の行番号を個別...
-
C# Listを使わずに2次元配列の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
VB.NETでファイル名順にファイ...
-
C# DataTableの行をソートしてD...
-
C言語・要素除去
-
配列の問題
-
VBA基本構文の作り方 2列の...
-
あるディレクトリ内のファイル...
-
Excelですべての組合せ(重複組...
-
n番目に大きい数を求めるアル...
-
2次元配列を複数項目でソートし...
-
ファイル名「1.jpg ~10.jpg~...
-
クイックソートしながら重複要...
-
C# ArrayListを二次元配列のよ...
-
csvファイル内にてソートす...
-
C言語について
-
昇順ソート
-
int num[10]という配列に、適当...
-
EXCEL VBAのソートについて
-
excel VBA の条件をつけての列...
おすすめ情報