已复制
全屏展示
复制代码

使用Python实现杨辉三角

· 1 min read

1. 杨辉三角

杨辉三角,是二项式系数在三角形中的一种几何排列。下一行的每一个元素都等于本行相邻两元素相加而得到。

2. 实现方法

将本行拷贝两个副本,将这两个副本分别在前后各补上一个 0,然后将这两个副本相加即可得到下一行数据。lines 表示要显示的行数。

def triangles(lines):
    line = [1]
    for _ in range(lines):
        yield line
        line = [sum(i) for i in zip([0] + line, line + [0])]

for line in triangles(10):
    print(line)
    

结果如下:

[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1]
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]

3. 总结

将当前行拷贝两个副本,用 zip 将这两个副本相对应的位置放在一个元组列表里面,然后用列表生成式循环该列表,同时对循环出来的元组求和,得到的列表就是下一行的值

这里还用到了生成器,作用是每调用一次,返回下一行数据,下一行的数据是慢慢生成了。

🔗

文章推荐