欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【阶段1】【定理证明】二项式定理证明

程序员文章站 2022-06-06 22:19:35
...

二项式定理:       【阶段1】【定理证明】二项式定理证明

证明过程:

【阶段1】【定理证明】二项式定理证明的项数是k+1,【阶段1】【定理证明】二项式定理证明这部分是没有问题的(随便想想就能理解),关键是证【阶段1】【定理证明】二项式定理证明,系数这个部分

当然,这其实就是杨辉三角形

我们把【阶段1】【定理证明】二项式定理证明拆开就会得到=(a+b)(a+b)……(a+b)【k个(a+b)相乘】

我们把式子拆开来运算的过程,相当于在每个括号中任意选a或者b

那么【阶段1】【定理证明】二项式定理证明,就是在n个(a+b)中任意选择了k个a,剩下的都选b

方案数就是【阶段1】【定理证明】二项式定理证明

也可以理解为在n个(a+b)中任意选择了n-k个b,剩下的都选a

方案数就是【阶段1】【定理证明】二项式定理证明

而我们知道

【阶段1】【定理证明】二项式定理证明等价于【阶段1】【定理证明】二项式定理证明

我们也可以用另外一种方式来理解,那就是用递推(dp)

【阶段1】【定理证明】二项式定理证明

对于每一次括号内的选择,如果选了a,那就向上走一格,如果选了b那就向右走一格,因为我们想知道【阶段1】【定理证明】二项式定理证明的系数,所以必须选n个a,必须选m个b,也就是不管顺序是怎么样子的,必须向上走n格,必须向右走m格。总共会走,n+m=k格,一定会到达(m,n)这个点。

所以求【阶段1】【定理证明】二项式定理证明的系数也就转化成了求从原点走到(m,n)这个点的路径数。路上每个点的状态都由左边或者下面的点继承而来。

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