반응형
[광고 누르면 오늘의 행운 상승!!]
- 서로 다른 n개의 원소 중 r개를 순서 없이 골라낸 것을 조합(Combination)이라고 부른다.
- 조합의 수식
예제 코드
0package array2;
import java.util.Arrays;
import java.util.Scanner;
//조합(Combination) nCr = 4C3 = 4*3*2/3*2*1
public class PermComb {
public static int n, r, cn;
public static int[] d = {1,2,3,4};
public static int[] a, v;
public static void permcomb(int start, int cnt) {
if(cnt == r) {
cn++;
System.out.println(Arrays.toString(a));
return;
}
for (int i = start; i < n ; i++) { // i == start 면서 중복방지
if(v[i] == 0) {
v[i] =1;
a[cnt] = d[i];
permcomb(i,cnt+1);
v[i] = 0;
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = 4; //sc.nextInt();
r = 3; //sc.nextInt();
//4개중 3개뽑기
v = new int[n];
a = new int[r];
permcomb(0,0);
System.out.println(cn);
sc.close();
}
}
[1, 2, 3]
[1, 2, 4]
[1, 3, 4]
[2, 3, 4]
반응형
'1. 알고리즘 이론 > 1. 순열, 조합' 카테고리의 다른 글
조합[NextPermution][Java] (0) | 2020.03.11 |
---|---|
순열(Permutation) (0) | 2020.03.01 |