Algorithm/Math
조합(Combination), 중복조합
Dev_Green
2023. 1. 9. 17:31
조합(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;
}
}