杨辉三角的快速求法
创作时间:
作者:
@小白创作中心
杨辉三角的快速求法
引用
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(Δ))] # 计算下一行,内循环
四、执行结果
热门推荐
美国经济衰退预期下,黄金投资价值凸显
癌症患者可以吃叶酸吗
厦门公租房房租缴纳规定及申请条件详解
适合儿童艺术起步的蜡笔画
智慧银行如何通过个性化服务和智能化流程提升客户满意度?
重庆三环高速公路将正式成环
小程序安全机制如何保障用户数据安全与隐私保护
祥云的寓意和象征:探索传统文化中的美好象征
兼职不签合同不发工资怎么办
以赛促用、以赛提效,浙江嵊泗开展智慧课堂教学能手评审活动
支气管扩张症护理及健康指导
左侧肚子肚脐眼左侧是什么器官
如何正确为Zippo打火机加油及其保养技巧详解
2025年这些太空探索大事值得关注 中国将开展近地小行星探测任务
怎么启动游戏系统设备管理
CPU的PL1功耗是什么意思,和PL2区别在哪?怎么看?
中山医院内镜中心搬迁新址:智能化升级,年诊疗能力提升至18万例
湿毒的症状及去除方法
为什么老丈人称呼岳父?背后有什么历史渊源?
小心这三个信号,肠梗阻离你不远了
“夏秋换季”健康口袋书
房产小额贷款全流程指南:从申请到管理的优化策略
继续教育:提升自我与适应时代变化的重要途径
最全!嵌入式STM32单片机开发环境配置教学Win/Mac
法国核聚变重大突破,等离子体运行1337秒刷新世界纪录!全球核电时代一步之遥
哪吒他娘为啥不是李夫人?出家女性冠夫姓是从西方学来的糟粕吗?
Windows XP系统的历史与应用:从辉煌到落幕
霉菌与健康:不可忽视的家庭隐患
KRC是什么格式?如何打开KRC格式文件?
Excel中将一个单元格的内容粘贴到多行的多种方法