组合
从N个不同元素中选K个,输出所有情况。
C N K = N ! K ! ( N − K ) ! C_{N}^{K}=\frac{N!}{K!(N-K)!} CNK=K!(N−K)!N!
方法1:掩码排列
void combination(int N, int K)
{
string bitMask(K, 1);
bitMask.resize(N, 0);
do {
for (int i = 0; i < N; i++)
{
if (bitMask[i] == 1)
cout << i << " ";
}
cout << endl;
} while (prev_permutation(bitMask.begin(), bitMask.end()));
}
排列
从N个不同元素中选M个元素进行排列,输出所有情况。
A N K = N ! ( N −