‘’’
杨辉三角实现
我们首先要理解杨辉三角是有什么样的规律,先把规律找出来
[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)