순열(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 |