Algorithm/Math
순열(Permutation)
Dev_Green
2023. 1. 9. 17:55
순열(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);
}
}