杨辉三角的快速求法
创作时间:
作者:
@小白创作中心
杨辉三角的快速求法
引用
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(Δ))] # 计算下一行,内循环
四、执行结果
热门推荐
什么是本体感觉神经肌肉促进技术(PNF)
服用褪黑素能调整时差吗?
什么是碳纳米管电池
葫芦在家居风水中的神奇作用与摆放秘诀
穿山龙的功效与作用 穿山龙如何使用
痘痘外用药膏有哪些
普洱茶搭配禁忌全解析:常见食物与药材相克对照表
2025年个人社保缴费记录查询官方渠道全攻略
不动产抵押流程详解:从申请到放款的完整指南
航班延误赔偿的标准是什么
初学者如何辩论:7个步骤+10个技巧
冻干机升华干燥阶段的优化步骤干货
八字印绶是什么意思?详解八字命理中的印绶与天印贵人
淋雨后该做些什么预防感冒
道指空单的止盈策略详解:如何把握最佳盈利时机点?
全球需求对金价的影响
高血糖患者适宜饮用的四种茶及日常注意事项
中国电建:绿色先行!为打造“生态运河”贡献电建力量
以案释法:二手车交易纠纷,何时适用“退一赔三”?
“买金容易 卖金便利” 黄金回收二手市场红火
课程设置突出地方特色 亳州市老年大学打造现代化老年教育新标杆
得了肺结节如何应对?筛查的方法有哪些?患者日常有哪些注意事项
利物浦大学出国留学条件是什么?如何满足这些要求?
OA办公软件消息提醒设置完全指南
牛皮癣用什么办法治疗效果好
感冒会导致心跳加快吗
中国铁路发展大事记
安徽:看文化产业如何迎春“拔节”
如何提升读懂卦题的能力
EA Sports FC 25即将推出重大更新:对手中途退出将被判负