杨辉三角的快速求法
创作时间:
作者:
@小白创作中心
杨辉三角的快速求法
引用
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个实用缓解方法
芒砀山旅游区:夫子山景区景点介绍
黄豆酱和豆瓣酱的区别,别用错了,味道不一样!
提升用户体验UX优化的有效策略与最佳实践
水泥砂浆抺灰流程及质量要求详解
蒸鸡蛋羹小技巧:“放温水”和“放凉水”差别大,难怪咋蒸都不老
如何连接蓝牙音箱到电脑(简单易行的步骤帮你成功连接蓝牙音箱)
新车提车几公里算正常?
麝香保心丸具有降压作用吗?
父亲坐过牢会影响政审吗?对子女和孙辈的影响分析
棘龙:白垩纪的半水生巨兽
金花龙舌兰:美国亚利桑那州的特有植物
华南深红多雨区出现,广东确定再成多雨中心!预报:局部连下10天
彬州:昔日挖煤卖炭,如今“科技感”拉满
用好“一块煤” 创新“一座城”:陕西彬州的产业转型升级之路
DeepSeek写游戏攻略也这么强?挑战“最难上手的游戏”入坑指南
电动车、三轮车、四轮车上牌新规:免费备案登记、过渡期延期等利好政策
利润暴跌46% !西门子全球裁员高达5000人
保暖效果最大化:六大暖宝宝最佳贴放位置及使用贴士
全面指南:如何规划最便捷的云南沙溪古镇之旅
肉桂怎么吃最好 4种吃法美味功效多
2024山东五大考古发现揭晓!10个候选项目解锁齐鲁历史密码
您的爱车“健康管家”就在附近:如何快速找到靠谱的汽车养护服务?
独生子女个税优惠全攻略:政策解读与APP申报指南
不懂什么是IOPV,投资ETF要吃大亏!
宝宝辅食之鳕鱼泥
《双影奇境》制作人采访:中国游戏市场令人兴奋
太行山:自然与文化的交融之地
油性皮肤是怎么回事?
儿童矮小症的原因及应对策略