こんにちは、私は C++ を使用しています。例 {1,2,3} 間のすべての可能な組み合わせを含む一連の数値から配列を取得する簡単な方法を見つけることができますか?
{ {3,1,2},
{1,2,3},
{3,2,1},
{1,3,2},
{2,1,3},
{2,3,1}
};
5つ以上の数字が出た場合の問題 120通りの組み合わせを作る方法
こんにちは、私は C++ を使用しています。例 {1,2,3} 間のすべての可能な組み合わせを含む一連の数値から配列を取得する簡単な方法を見つけることができますか?
{ {3,1,2},
{1,2,3},
{3,2,1},
{1,3,2},
{2,1,3},
{2,3,1}
};
5つ以上の数字が出た場合の問題 120通りの組み合わせを作る方法
それらは順列であり、組み合わせではありません。
std::next_permutation
シーケンスのすべての順列を計算するために使用できます。次のようになります。
std::array<int, 3> data = { 1, 2, 3 };
do {
// use current permutation
} while (std::next_permutation(data.begin(), data.end()));
(std::array
この例ではC ++ 0xから使用しました。array
コンテナーは、C ++ TR1およびBoostにもあります。このアルゴリズムは、のように双方向に反復可能な任意のコンテナーでも機能しますstd::vector
。)