在OI中与杨辉三角有关的一些组合数学

杨辉三角(国外称帕斯卡三角)大概就是这样一个三角形:


还有每一行的第1个数其实是第0个数.

这个三角形满足一个通项公式:

若j=0或j=i,则f[i][j]=1.

否则f[i][j]=f[i-1][j-1]+f[i-1][j].

这个三角形的生成可以这样:

for (int i=0;i<=n;i++){
  f[i][0]=1;f[i][i]=1;
  for (int j=1;j<i;j++)
    f[i][j]=f[i-1][j]+f[i-1][j-1];
}

这个三角形其实与组合数学密切相关.

比如说二项式定理:(a+b)^i的展开式第j项(设有第0项)为C(i,j).

杨辉三角第i行的数字之和为2^i,也等于C(i,0)+C(i,1)+...+C(i,i).

我们可以用杨辉三角推得:C(i,j)=C(i-1,j)+C(i-1,j-1).

好像杨辉三角也没什么用了.

猜你喜欢

转载自blog.csdn.net/hzk_cpp/article/details/80556269