본문 바로가기
Algorithm/Math

조합(Combination), 중복조합

by Dev_Green 2023. 1. 9.

조합(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