본문 바로가기
Algorithm/Math

순열(Permutation)

by Dev_Green 2023. 1. 9.

순열(Permutation)

서로 다른 n개 중 r개를 순서 있게 배열하는 경우의 수 (중복 X)

 

중복 순열

서로 다른 n개 중 r개를 순서 있게 배열하는 경우의 수 (중복 O)

 

원 순열

서로 다른 n개를 원형으로 배치하는 경우의 수

ex) 원 모양의 테이블에 각자 이웃하는 사람의 구성이 다른 모든 경우의 수. 회전시켜서 같은 경우는 하나의 경우로 여김

 

코드(Java)

public class Main {
    public static void main(String[] args) {
        int n = 6;
        int r = 3;
        
        // 순열
        int p1 = 1;
        for (int i = n; i >= n - r + 1 ; i--) {
            p1 *= i;
        }

        // 중복 순열
        int p2 = 1;
        for (int i = 0; i < r; i++) {
            p2 *= n;
        }

        // 원 순열
        int p3 = 1;
        for (int i = n - 1; i >= 1 ; i--) {
            p3 *= i;
        }

        System.out.println("순열     :"+p1);
        System.out.println("중복순열  :"+p2);
        System.out.println("원순열    :"+p3);
    }
}

'Algorithm > Math' 카테고리의 다른 글

[Math] 부분집합과 멱집합 / Java  (0) 2023.08.14
[Math] 순열(Permutation) / Java  (0) 2023.08.13
[백준] 11758. CCW / Java  (0) 2023.06.20
조합(Combination), 중복조합  (0) 2023.01.09