Python学习之---杨辉三角的五种解法

本文介绍了杨辉三角,一种在编程学习中常见的数字金字塔,源自南宋数学家杨辉。文章详细讲解了用Python实现杨辉三角的五种方法,包括基本法、补零法、对称法、单行覆盖法和组合数公式法,适合Python初学者,要求掌握基础的循环和列表操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

杨辉三角(也称帕斯卡三角)对与编程初学者来说,肯定不陌生,它是一个无限对称的数字金字塔,从顶部的单个1开始,下面一行中的每个数字都是上面两个数字的和。

杨辉三角,是二项式系数在三角形中的一种几何排列,在中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623—-1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。
那么什么是杨辉三角呢?
啥也不多说,

小二,上图!!!

图片来源百度

图片来源百度

虽然不同的编程语言对于杨辉三角的求解方式不一样,但是,求解思路大致相同.今天我们先来讨论python初学者对杨辉三角的几种求解方法,等后期学习了更高级的函数,在进行补充.

知识储备需求:
python初学者,了解python中循环与列表基础知识.

方法一:基本法

#解释:将所有元素添加到一个列表中,最后一次打印出结果
num = 10
triangle= [1,[1,1]]
for i in range(2,num):
    cur=[1]               #定义新列表起始值cur --current
    pre= triangle[i-1]    #提取新行的前列所有元素待用
    for j in range(i-1):  #定义两两相加的界限,即取值最大为i-2
        cur.append(pre[j]+pre[j+1])#依次迭代相加
    cur.append(1)     #尾部插入数字1,比用 insert 方法效率来的高,只是尾部追加,#不用每次插入都向后移动元素,因此insert法虽然可行禁用,效率太低,占据内存较多.
                          
    triangle.append(cur)  #列表中插入新生成的列表
#     cur=[1]
#     for j in range(0,i-1):
#         cur.append(triangle[i-1][j]+triangle[i-1][j+1])
#     cur.append(1)
#     triangle.append(cur)
#     print(cur)            #(比较注释行,两种方法结果相同,操作稍有变化,都是索引列表,还有就是打印时是一行打印还是)
    
                            
print(triangle)           #打印出结果
    
#优化代码打印,去除特例行:
num = 10
for i in range(num):
    cur=[1]               #定义新列表起始值cur --current
    triangle.append(cur)  #起始追加,列表存放索引地址,当后面进行cur.append()后,这里因为地址索引没变,但内部值发生了改变   
    if i ==0:
        continue
    pre= triangle[i-1]    #提取新行的前列所有元素待用
    for j in range(i-1):  #定义两两相加的界限,即取值最大为i-2
        cur.append(pre[j]+pre[j+1])<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值