杨辉三角
1
1 1
1 2 1
1 3 3 1
...................
其每一行的值均与上一行关系密切,如第3行的中间值2是第2行两值相加而得
python上,列表的下标是可以取得负下标
如可以这样想:
每一次在旧的列表上添加新的元素,值为0,下标-1就正好为0
计算第2行:
i=0, i-1=-1, 而下标-1值为0,下标0则为1,将下标-1与下标0,相加得1
i=1, i-1=0, 而下标1值为0,同上,得1+0 = 1---->1 1
计算第3行:
将前一行视为列表L,计算规则为L[i-1]+[i]
同样,先增加L的元素,追加一个元素(0)
那样L=[1,1,0]
计算:
i = 0, L[i-1] +L[i] = L[-1]+L[0] = 0 +1=1
i=1, L[i-1] + L[i] = L[0]+L[1]= 1+1=2
i = 2, L[i-1] +L[i]= L[1]+[2]= 1+0=1
此次为:1 2 1
下次开始则为(1 2 1 0),计算规则如上
'''
杨辉三角
'''
def myTry():
l = [1]
while True:
yield l
l.append(0)
l = [l[i-1]+l[i] for i in range(len(l)) ]
num = 0
for temp in myTry():
print(temp)
if num == 10:
break
num += 1