조합(Combination)
서로 다른 n개 중에서 r개를 선택하는 경우의 수 (중복 선택 X)
중복 조합
서로 다른 n개 중에서 r개를 선택하는 경우의 수 (중복 선택 O)
코드 (Java)
public class Main {
public static void main(String[] args) {
int n = 6;
int r = 3;
System.out.println(getCombination(n, r)); // 조합
System.out.println(getCombination(n + r - 1, r)); // 중복 조합
}
public static int getCombination(int n, int r) {
int pResult = 1;
for (int i = n; i >= n - r + 1 ; i--) {
pResult *= i;
}
int rResult = 1;
for (int i = 1; i <= r; i++) {
rResult *= i;
}
return pResult / rResult;
}
}
'Algorithm > Math' 카테고리의 다른 글
[Math] 부분집합과 멱집합 / Java (0) | 2023.08.14 |
---|---|
[Math] 순열(Permutation) / Java (0) | 2023.08.13 |
[백준] 11758. CCW / Java (0) | 2023.06.20 |
순열(Permutation) (0) | 2023.01.09 |