次のようなプログラムを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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Java Java 南京錠 2 2023/02/04 11:46
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- 高校 行列のかけ算 2 2022/06/24 17:12
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- Excel(エクセル) エクセルで重複しない組み合わせの出し方 6 2023/01/12 23:51
- 数学 何故ベクトルの和の定義は↑AB+↑BC=↑ACなのですか? 11 2022/05/19 19:03
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- 小学校 約数の調べ方。 小学生の子供に分かりやすいように説明したいです。 例えば素因数分解するとします。2が 4 2022/08/24 15:14
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
順列の内容をすべて表示するプログラムについて
C言語・C++・C#
-
C言語についてです。 再帰を使わないでnCrの組み合わせを求める関数を作りたいのですが、ここから全く
C言語・C++・C#
-
順列のプログラムについて(VB)
Visual Basic(VBA)
-
-
4
テキストファイルから文字列を読み込んで二次元配列に格納するには
C言語・C++・C#
-
5
VBで組み合わせのプログラムができなくて困ってます。
Visual Basic(VBA)
-
6
C言語のポインターに関する警告
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リスト構造のソートで悩んでま...
-
C# DataGridView のヘッダーセ...
-
C言語でファイルの中身をソー...
-
C++ 入力した3つのint型の整数...
-
VBScriptで配列のソートをする...
-
C言語・要素除去
-
mysqlで日本語の並び替え
-
C言語について
-
C# DataTableの行をソートしてD...
-
System.IO.Directory.GetFiles...
-
構造体配列の並べ替え
-
listboxの並び替え
-
VB.NETでファイル名順にファイ...
-
コレクションの数値をSortで並...
-
VBA基本構文の作り方 2列の...
-
GridViewで列のソートを無効に...
-
ファイル名「1.jpg ~10.jpg~...
-
列のどこをクリックしてもソー...
-
自己参照構造体を使った2分探...
-
C言語 配列の長さの上限
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
VB.NETでファイル名順にファイ...
-
C# DataGridView のヘッダーセ...
-
ファイル名「1.jpg ~10.jpg~...
-
C# DataTableの行をソートしてD...
-
あるディレクトリ内のファイル...
-
excel VBA の条件をつけての列...
-
excel VBA リストビューの行...
-
DataGridViewの複数列を連動し...
-
文字列をソートする方法
-
Excelですべての組合せ(重複組...
-
列のどこをクリックしてもソー...
-
n番目に大きい数を求めるアル...
-
Excel VBAで並べ替えをしたい
-
DataGridViewの昇順降順。
-
vbでDataTableの抽出コピー
-
数字文字列のソート方法
-
VB6でデータを昇順に並べ替える
-
VBScriptで重複レコードを削除...
-
ListViewのソートについて
おすすめ情報