[数学]Permutation&Combination
Permutation & Combination
ソートと組合せアルゴリズム
シーケンス:r個の
순서대로
の数を異なるnにリストする組合せ:異なるnからr個の
순서없이
の数を選択するオーダー
10枚のトランプから1、5、8枚のトランプを引く場合を想定します.
순서없는 경우
:1先抽,5先抽,순서있는 경우
:1先取、5先取、8先取の場合を考慮します.シーケンスサンプルコード
nPr
: n (n - 1) (n - 2) * ... (n - r - 1)#define MOD 1000000007
long long permutation(int n, int r){
long long ans = 1;
for(int i = n; i >= n - r - 1; i--){
ans *= i;
ans %= MOD;
}
return ans;
}
サンプルコードの組合せ
nCr
: nPr
/ r!
組合せの性質파스칼의 삼각형
を利用して、注釈シーケンスを利用して、nCr
= n-1Cr-1
+ n-1Cr
#define MOD 1000000007
#define MAX 100000
long long combi[MAX][MAX];
void init(){
combi[0][0] = 1;
for(int i = 1; i <= MAX; i++){
combi[i][0] = 1;
for(int j = 1; j <= i; j++)
combi[i][j] = (combi[i - 1][j - 1] + combi[i - 1][j]) % MOD;
}
}
Reference
この問題について([数学]Permutation&Combination), 我々は、より多くの情報をここで見つけました https://velog.io/@rxjw95/수학Permutation-Combinationテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol