杨辉三角详解

杨辉三角是什么?

杨慧三角是二项式系数在三角形中的一种集合排列!!

换一种说法: 杨辉三角是二项式系数, 通过数据三角形表示, 发现的数学规律.

杨辉三角与二项式系数联系

定义: 在数学里, 二项式系数, 或组合数, 是定义为形如(1+x)n(1 + x)^n(1+x)n展开后x的系数(其中n为自然数, k为整数)

那么一般二项式(x+y)n(x + y)^n(x+y)n 的幂可用二项式系数记为CnrC^r_nCnr​

通常来讲,二项式系数代表的是从n件物品中,无序地选取k件的方法总数.

证明二项式系数与组合数之间的联系:

假设n = 4, k = 2. 通过组合数公式可以得到组合数为 6.

假如我们把(1+x)4(1 + x)^4(1+x)4 展开并标记每一个x, 就会得到:

(1+x1)(1+x2)(1+x3)(1+x4)(1+x_1)(1+x_2)(1+x_3)(1+x_4)(1+x1​)(1+x2​)(1+x3​)(1+x4​)
上式等于:
(1+x1)⋯(1+x4)=⋯+x1x2+x1x3+x1x4+x2x3+x2x4+x3x4+⋯(1+x_1)⋯(1+x_4)=⋯+x_1x_2+x_1x_3+x_1x_4+x_2x_3+x_2x_4+x_3x_4+⋯(1+x1​)⋯(1+x4​)=⋯+x1​x2​+x1​x3​+x1​x4​+x2​x3​+x2​x4​+x3​x4​+⋯

假如把标记去掉, 那么x2x^2x2的系数正好是等于6, 与C42C_4^2C42​相符合

也就证明了:(1+x)n(1+x)^n(1+x)n中xkx^kxk的系数正好等于从n个元素中选取k个元素的组合数(CnkC^k_nCnk​).

杨辉三角代码实现的递推公式

C[i][j]=C[i−1][j]+C[i−1][j−1];C[i][j]=C[i−1][j]+C[i−1][j−1];C[i][j]=C[i−1][j]+C[i−1][j−1];

11   11  2   11  3   3   11  4   6   4   1

递推:

#include<bits/stdc++.h>
using namespace std;
map<int, map<int, int> >mp;
int main()
{mp[0][0] = 1;//输入一个row, col表示待查找的行和列, 输出其对应杨辉三角的值int row, col; cin >> row >> col;for(int i = 1;i <= row; i++)for(int j = 1;j <= i; j++){mp[i][j]=mp[i - 1][j] + mp[i - 1][j - 1];if(i == row && j == col){ cout << mp[i][j]; return 0; }}return 0;
}

组合数公式:

Cnm=Anmm!=n!m!(n−m)!C^m_n=\frac{A^m_n}{m!}=\frac{n!}{m!(n−m)!}Cnm​=m!Anm​​=m!(n−m)!n!​

#include<bits/stdc++.h>
using namespace std;
//求阶乘
int fun1(int num){int ans = 1;for(int i = 1;i <= num; i++){ans *= i;}return ans;
}
// 求组合数
int fun2(int a, int b){return fun1(a) / (fun1(a) * fun1(a - b));
}
int main()
{int row, col;cin >> row >> col;cout << fun2(row - 1, col - 1);
}

【算法竞赛】杨辉三角 | 杨辉三角与组合数的关系 | 杨辉三角的算法应用 | c++代码实现公式获取杨辉三角位置的值相关推荐

  1. 【2023 年第三届长三角高校数学建模竞赛】B 题 长三角新能源汽车发展与双碳关系研究 新能源汽车销售相关数据160M+下载

    [2023 年第三届长三角高校数学建模竞赛]B 题 长三角新能源汽车发展与双碳关系研究 新能源汽车销售相关数据160M+下载 相关链接 [2023 年第三届长三角高校数学建模竞赛]B 题 长三角新能源 ...

  2. 算法竞赛入门【码蹄集进阶塔335题】(MT2026-2050)

    算法竞赛入门[码蹄集进阶塔335题](MT2026-2050) 文章目录 算法竞赛入门[码蹄集进阶塔335题](MT2026-2050) 前言 为什么突然想学算法了? 为什么选择码蹄集作为刷题软件? ...

  3. 《算法竞赛进阶指南》数论篇

    <算法竞赛进阶指南>数论篇(1)-最大公约数,素数筛,欧拉函数,同余,欧拉定理,BSGS <算法竞赛进阶指南>数论篇(1)-最大公约数,素数筛,欧拉函数,同余,欧拉定理,BSG ...

  4. 算法竞赛入门【码蹄集进阶塔335题】(MT2001-2025)

    算法竞赛入门[码蹄集进阶塔335题](MT2001-2025) 文章目录 算法竞赛入门[码蹄集进阶塔335题](MT2001-2025) 前言 为什么突然想学算法了? 为什么选择码蹄集作为刷题软件? ...

  5. 算法竞赛入门【码蹄集进阶塔335题】(MT2076-2100)

    算法竞赛入门[码蹄集进阶塔335题](MT2076-2100) 文章目录 算法竞赛入门[码蹄集进阶塔335题](MT2076-2100) 前言 为什么突然想学算法了? 为什么选择码蹄集作为刷题软件? ...

  6. CH5202 自然数拆分Lunatic版(算法竞赛进阶指南,完全背包)

    算法竞赛进阶指南,278页,完全背包 本题要点: 1.把完全背包的代码改改即可.常规的完全背包: 有n个物品,每个物品的体积是v[i], 价值是w[i], 求装到大小为m的大背包,能获得的最大价值(每 ...

  7. 算法竞赛入门【码蹄集进阶塔335题】(MT2051-2075)

    算法竞赛入门[码蹄集进阶塔335题](MT2051-2075) 文章目录 算法竞赛入门[码蹄集进阶塔335题](MT2051-2075) 前言 为什么突然想学算法了? 为什么选择码蹄集作为刷题软件? ...

  8. 算法竞赛入门【码蹄集进阶塔335题】(MT2291-2295)

    算法竞赛入门[码蹄集进阶塔335题](MT2291-2295) 文章目录 算法竞赛入门[码蹄集进阶塔335题](MT2291-2295) 前言 为什么突然想学算法了? 为什么选择码蹄集作为刷题软件? ...

  9. 算法竞赛入门【码蹄集进阶塔335题】(MT2321-2325)

    算法竞赛入门[码蹄集进阶塔335题](MT2321-2325) 文章目录 算法竞赛入门[码蹄集进阶塔335题](MT2321-2325) 前言 为什么突然想学算法了? 为什么选择码蹄集作为刷题软件? ...

最新文章

  1. Python --深入浅出Apriori关联分析算法(二) Apriori关联规则实战
  2. ubuntu安装redis的方法以及PHP安装redis扩展、CI框架sess使用redis的方法
  3. vue-cli + lib-flexible + px2rem实现px自动转化为rem
  4. go:系统参数or函数--未完
  5. make sure the Graphviz executables are on your systems‘ PATH
  6. Matlab与线性代数
  7. ie下的透明度,用滤镜filter:alpha
  8. emlog链接html,emlog如何做站内外链跳转优化教程
  9. 三菱驱动器参数表_三菱 M 参数表
  10. unity材质丢失素材变成粉红色的解决方法
  11. 有定位的含有 input的弹框,在有些手机光标乱跳
  12. app瘦身值图片压缩
  13. 中西方对时间的差异_中西方时间表达的认知差异
  14. (二)如何使用Progress Bar
  15. ASP.NET Core 认证与授权[3]:OAuth OpenID Connect认证
  16. 关于DPABI头动参数问题
  17. FlexboxLayout全攻略(Google官方灵活实现流式布局控件)
  18. Zego SDK深度适配安卓机型,实现超低延迟耳返
  19. 2022年湖南省高职单招(职业倾向性)考试冲刺练习及答案
  20. 【翻译】和麻美学姐一起的世界树(マミさんと世界樹スレ)第三话

热门文章

  1. Simply Good Pictures 5中文版
  2. MiniUI官方表单验证示例
  3. 极验三代滑块验证分析
  4. 一个清明梦引发的一系列关于时间、人生、生命的简单思考
  5. 深圳市内转移户口 迁入派出所代管户
  6. 小米2018年财报:雷军实现了承诺,但输掉了10亿赌局...
  7. 请关闭该文件夹或文件,然后重试 怎么处理?
  8. 手撸一个一起看电影应用-3-Vue前端信息收发
  9. 关于定时器宽频输出PWM的一些笔记
  10. 淘宝直通车和引力魔方区别