杨辉三角又称帕斯卡三角
他有如下形式:
我们可以看出 当k==0时,值为1;(k为列,n为行)
当k==n时,值为1;
其他时候,值为其上方的数加上其上方的左边的数;
所以我们可以用递归或者数组进行迭代:
下面写出一中递归的方法:
int rec(int k,int n)
if(k==0||k==n)
return 1;
else
return rec(k,n-1)+rec(k-1,n-1);
void main(){
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
if(i>=j){
printf("%d ",rec(j,i));
}else{
printf(" ");
}
}
printf("\n");
}
}
如果我们定义 n选取k 为(n,k); 则 (n,k)=(n*(n-1)...*(n-k+1))/(k!); 表示n种小球中取出k种小球的不同取法;
例如 :(4,2)=6 说明 从4种小球中取出2种小球的不同取法为6种;
另外(n,k)也是二项系数 (x+y)^4 的展开式为:x^4+4*x^3y+6*x^2y^2+4*xy^3+y^4; 其系数为1 4 6 4 1 正好为杨辉三角的第四行;
二项系数中最重要的一个二项恒等式就是 (n,k)=(n-1,k)+(n-1,k-1);