杨辉三角的快速求法
创作时间:
作者:
@小白创作中心
杨辉三角的快速求法
引用
CSDN
1.
https://blog.csdn.net/hz_zhangrl/article/details/139815474
一、杨辉三角形
杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列,古称“开方作法本源图”。
杨辉三角的历史
北宋人贾宪约1050年首先使用“贾宪三角”进行高次开方运算。最早出现在《宋史·艺文志》中贾宪所著的《黄帝九章算法细草》九卷,书已无存,但其许多内容为100多年后的南宋数学家杨辉1261年撰写的《详解九章算法》之中,故又称为杨辉三角形。
图1 杨辉简介
杨辉,字谦光,南宋时期杭州人。在他1261年所著的《详解九章算法》一书中,辑录了如上所示的三角形数表,称之为“开方作法本源”图,并说明此表引自11世纪前半贾宪的《释锁算术》,并绘画了“古法七乘方图”。故此,杨辉三角又被称为“贾宪三角”。
在欧洲,帕斯卡在1654年发现这一规律,所以这个表又叫做帕斯卡三角形,但是帕斯卡的发现比杨辉要迟393年,比贾宪晚500年。
二、快速求解方法
如图2所示,如果序列(或数组)的第一个和最后一个元素为0,下一行的所有元素都查以用上一行对应的元素和上一行前一个元素和。先输出,再添0为求下一行作准备。
对Python列表a,a[-1]=a[n-1],所以只需给列表尾部添加0元素即可。
图2 杨辉三角快速求解原理图
三、Python代码
这也许是最短的求杨辉三角的Python代码。
n = 15 # 生成杨辉三角的行数
Δ = [1] # 初始化杨辉三角
for i in range(n): # 外循环
print(' '.join(str(j) for j in Δ).center(60)) # 格式化输出,内循环
Δ.append(0) # 添加个0(Δ[-1]=0),用于计算下一行
Δ = [Δ[j]+Δ[j-1] for j in range(len(Δ))] # 计算下一行,内循环
四、执行结果
热门推荐
空气过滤器的风量与过滤器面积的关系
暗黑破坏神:不朽法师职业宝石搭配推荐:提升输出与生存的最佳组合
怎样才能顺利入职目标公司的管理层?
B端业务市场线索获取攻略:建立高效的获客网络
电饭煲粘锅怎么办?这些实用技巧让你轻松应对
大厂人上岸的尽头,是大专老师?
《鹊刀门传奇2》:东北江湖的烟火气与侠义魂——一场笑中带泪的武侠盛宴
春季中医养生小贴士
股指期货和股票期货期权的风险对比图,股指期货与股票期货期权风险分析对比
涉外婚姻必读:婚前财产协议如何签订才有效?
晒黑多久白回来?如何帮助皮肤变白、改善黑色素沉淀
模电笔记:PN结与二极管特性详解
河流铊浓度异常,威胁下游!两地迅速启动应急机制,最新通报:沿线饮用水安全
抵扣联如何装订保存:会计凭证管理实务指南
怀孕初期可以参与哪些适当的运动活动?
辐射4动力甲哪个好用吗
增强免疫力,「灵芝」找回身体的平衡防护
从二维随机变量到多维随机变量
晚上一直咳不停?常見夜咳六大原因
三个维度透视四川宜宾建设现代化区域中心城市的奋进之路
以太网技术系列专题九:边缘计算技术简介
硅胶材料的制造过程
茶友必备:选购茶叶的五大原则
钓鱼时如何通过观察水声来判断鱼的位置?
提升企业现金流:优化应收账款周转速度的实用方法
科学喝白酒,养生效果超乎想象!四点建议助你健康饮酒!
银行储蓄产品的复利计算方式详解
脚踝关节炎患者的运动指南:哪些运动最适合?
公司注销需要哪些文件?法人如何操作?网上能否办理?
拘役的天数从什么时候开始起算