프로그래밍[Univ]/알고리즘

[알고리즘] 동적프로그래밍 Part 1 - 이항 계수(Binomial Coefficient) 구현 - by java

Cloud Travel 2011. 11. 12. 20:19

public class bincoeff {
// 두 개의 값중에서 작은 값을 판별하여서 반환해준다.
private int min(int i, int j){
if ( i >= j ) return j;
else return i;
}
// 이항 계수를 구하는 부분
public int coeff(int n, int k){
int i, j; // 루프문을 돌기 위해서 필요한 변수
int B[][] = new int[n+1][k+1]; // 배열을 생성해준다. 
// 구하려는 값을 구하기 위해서는 1을 더해서 확장하여 생성해줘야한다.
for ( i  = 0 ; i <= n ; i++ ){
for ( j = 0 ; j <= min(i,k) ; j++ ){
if ( j == 0 || j == i ) B[i][j] = 1;
else B[i][j] = B[i-1][j-1] + B[i-1][j];
}
}
return B[n][k];
}
public static void main(String[] args){
bincoeff b = new bincoeff();
System.out.println("n = 10 / k = 3   / Ans : " + b.coeff(10, 3));
}
}


------------------------------------------------------------------------
별거 없습니다. 인터넷에는 그냥 알고리즘만 돌아다니고, 자바 슈도코드라고하면서

정확히 안해준 것이 많아서 생각해보니... 앞뒤가 안맞는 슈도코드... 

-_- 먼가 다하고보니 어의가 상실했지만 뭐... 그냥 그렇다 치고 ... 힘내서 해봤습니다.