组合数递推公式及其证明
作者:互联网
C ( n , k ) = C ( n − 1 , k − 1 ) + C ( n − 1 , k ) C(n,k) = C(n-1,k-1) + C(n-1,k) C(n,k)=C(n−1,k−1)+C(n−1,k)
我们将 n n n个元素分成两组
第一组 n − 1 n-1 n−1个,第二组 1 1 1个
从中取出 k k k个元素(一共有 C ( n , k ) C(n,k) C(n,k)种)
现在取法有两种
- 从第一组中取出 k k k个,方法有 C ( n − 1 , k ) C(n-1,k) C(n−1,k)种
- 从第一组中取出 k − 1 k-1 k−1个,从第二组中取出 1 1 1个,方法有C ( n − 1 , k − 1 ) (n-1,k-1) (n−1,k−1)种
即 C ( n , k ) = C ( n − 1 , k ) + C ( n − 1 , k − 1 ) C(n,k)=C(n-1,k)+C(n-1,k-1) C(n,k)=C(n−1,k)+C(n−1,k−1)
Code
for(int i=0;i<10;++i){
C[i][0] = C[i][i] = 1;
for(int j=1;j<i;++j){
C[i][j] = C[i-1][j] + C[i-1][j-1];
}
}
标签:元素,组合,int,公式,第一组,Code,取出,递推,第二组 来源: https://blog.csdn.net/weixin_45724872/article/details/120623282