python学习日记-----杨辉三角

‘’’

杨辉三角实现

我们首先要理解杨辉三角是有什么样的规律,先把规律找出来
[1]---------------------------- 第一行
[1][1]------------------------- 第二行
[1][2][1]---------------------- 第三行
[1][3][3][1]------------------- 第四行
[1][4][6][4][1]---------------- 第五行

从上面可以看出
每一行都开头和结尾都是[1]
这个我们可以完全把他是为一个常规量
每一行的规律就是[1]…[1]
那么我们只需要找出中间的规律就可以实现了

规律如下:
新一行的中间部分就等于上一行的相邻的两个元素相加
第0个元素+第个1元素,第1个元素+第2个元素,第2个元素+第三个元素。。。。
规律就是:
[1]+L[0]+L[1],L[1]+L[2],L[2]+L[3]…+[1]
用代码表示中间部分
[L[i] + L[i+1] for i in range(x)]
现在就是要确定这个x和存在什么样的规律
经过观察:
x与数列的长度有一定的关系
x = len(L)-1
得出代码:
[1] + [L[i]+L[i+1] for i in range(len(L)-1)] + [1]
实现代码如下:
‘’’

def triangles():
	L = [1]
	yield L
	while True:
    	L = [1] + [L[i]+L[i+1] for i in range(len(L)-1)] + [1]
    	yield L

测试代码:

n = 0
results = []
for t in triangles():
    results.append(t)
    n = n + 1
    if n == 10:
        break
    
for t in results:
    print(t)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值