在用数学公式计算组合数计算组合数时,可以用递归算法计算。
关于计算递归组合数的理解:
你可以从装a个球的袋子里取出b个球,然后先取出其中一个带标记的球。
这个问题可以分解为:1.选择所有球中不含带标记的球,即从(a-1 )个球中取出b个球。 2 .所选球中包含有标记的球。 即,从(a-1 )个球中选择(b-1)个球。 因为有标记的球是先被选择的。
cab=CA1 BCA 1b 1c _ a ^ b=c ^ b _ { a-1 } c _ { a-1 } ^ { B-1} cab=CA1 BCA 1b 1
//将组合数的结果存储在c[n][n]的二维阵列中的for(intI=0; i=n; I ) for(intj=0; j=i; j ) if (! j ) c(I ) ) j )=1; elsec [ I ] [ j ]=c [ I-1 ] [ j ] c [ I-1 ] [ j-1 ]