杨辉三角的快速求法
创作时间:
作者:
@小白创作中心
杨辉三角的快速求法
引用
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(Δ))] # 计算下一行,内循环
四、执行结果
热门推荐
陈桥兵变:赵匡胤黄袍加身的精彩4天
扬州最出名的老街:老字号商铺林立美食遍地,见证广陵城千年变迁
《春醒脑力·三穴防健忘》—— 中年脑雾破解术
2024年武汉大学生购房享多项优惠:首付最低15%,各区还发优惠补助
Luminex液相芯片技术原理及其在生物医学研究中的应用
年纪大了,身上痒不停,老年瘙痒症该怎么办?
冬天来了大雁会怎么样?
当年阿森纳的亨利到底有多恐怖?若放在现在 英超金靴依旧妥妥的
从金融视角看甲午战争
历史上最早的汽车是谁发明的?中国第一辆汽车又是何时制造的?
如何保护IP地址?安全匿名上网的方法
黄帝生平介绍
元代瓷器的瑰宝:元青花釉里红穿花龙纹梅瓶
微信头像能暴露一个人的层次:层次越高的人,越不会用这三种头像
非洲各国知识产权与法律环境研究报告在深圳发布
建德小鳔鮈:中国特有珍稀观赏鱼
分泌性中耳炎治疗最佳方法
摩托车旅行攻略:全面准备与安全驾驶指南
提升职场竞争力:了解PPT制作的关键要求
《百万美元周末》读书笔记:48小时内启动七位数业务的实用指南
从"白龙马"到卤肉店老板:王伯昭的演艺人生与生活转变
十个让你的生活更省钱的消费技巧
孩子身高、体重不达标?很可能是没吃好!
3岁孩子语言组织能力差要怎么训练?6个方法让孩子能说会道
《唐人街探案》—— 悬疑与幽默的完美融合
反黑刑侦剧《狂飙》的艺术突破与现实启示
无锡十大徒步路线推荐,总有一条适合你
美国学校排球的现状与发展前景
多级喷淋塔:深度处理设备解析
第十届“海峡两岸暨港澳经贸论坛”在台北成功召开