杨辉三角的快速求法
创作时间:
作者:
@小白创作中心
杨辉三角的快速求法
引用
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(Δ))] # 计算下一行,内循环
四、执行结果
热门推荐
生辰八字如何影响婚姻选择与幸福指数分析
白酒与健康:探寻适量饮用的智慧之道
海外仓FBA转运补仓业务详解:优势、实施步骤及常见问题解答
《人鱼之间》:对经典童话的现代重构
脚气和灰指甲有什么区别
一个人的微信状态,可以看出他是不是真的爱你
如何描述纱线的粗细
婚姻:社会资源的纽带与心理压力的调节器
中国团队研发出耐高温电池隔膜制备新工艺 助力提升锂电池安全性
2025年2月全国白酒价格指数走势分析
C罗的回归与曼联的困境:背负黑锅的传奇
雷诺数揭秘!你必须知道的流体动力学关键知识
辛伐他汀片的副作用是什么
直播之恐怖审判81文学:法律视角下的直播行业风险与治理
细胞学专业是什么专业?一文详解细胞学专业
餐桌礼仪都有哪些:打造温馨家居生活
PCB 设计困局与破局之思:EMC 难题下的技术探索
固态电池出来之日,就是增程车“死亡”之时?
焦虑型肥胖:你的坏情绪,正在偷偷堆积脂肪
黄酒和枸杞的功效与使用方法
基于ESP32的智能照明系统开发:从硬件设计到软件实现
月亮知识大全
如何准确计算和分析OBV线指标?这些指标在投资中的应用价值如何?
牙痛和头痛的关联性及应对策略
如何使用量比指标?这种使用对股市分析有何帮助?
格律诗的基础——平仄、押韵简略讲解,规则及注意事项
江南四大园林的传承与发展
地产中介的职业解析与职业规划
设计时速400公里!中车长客全球首发
从"旅游"到"旅居":云南解码旅游业态新范式