排列组合

 根据递推公式

Cmn+1 =  Cmn + Cm-1n 

这个与动态规划有一定联系,列出所有情况,然后递推、矩阵列出最优解、

1 #include <stdio.h>
2  #define MAX 100
3  long binomial_coefficient(int n,int m){
4  int i,j;
5 long bc[MAX][MAX];
6
7 for(i=0;i<=n;i++) bc[i][0]=1;
8
9 for(j=0;j<=n;j++) bc[j][j]=1;
10
11 for(i=1;i<=n;i++)
12 for(j=1;j<i;j++){
13 bc[i][j]=bc[i-1][j-1]+bc[i-1][j];
14 }
15 return (bc[n][m]);
16 }
17
18 int main(void){
19 //c 5 2 = 5!/((5-2)!*2!)
20 printf("%d\n",binomial_coefficient(5,2));
21
22 return 0;
23 }
posted @ 2011-04-05 20:59  阿刻  阅读(211)  评论(0编辑  收藏  举报