帕斯卡三角形
我想用Python脚本来生成一个帕斯卡三角形。
我已经做到这里了,但不知道接下来该怎么做。
numstr = raw_input("Please enter the height: ")
height = int()
tri = []
row1 = [1]
row2 = [1, 1]
tri.append(row1)
tri.append(row2)
while len(tri) < height:
8 个回答
2
其实,下一行是上一行的交叉轴和。举个例子,如果上一行是 [1, 1],那么下一行就会是:
[1, 1]
+ [1, 1]
-----------
= [1, 2, 1]
[1, 2, 1]
+ [1, 2, 1]
--------------
= [1, 3, 3, 1]
所以,循环的内容可以写成这样:
tri.append(map(lambda x, y: x + y, [0] + tri[-1], tri[-1] + [0]))
3
3
你需要从三角形的最后一行开始,来创建下一行,步骤如下:
- 在新的一行开头放一个1
- 对于最后一行中的每个数字(除了最后一个),计算这个数字和它右边邻居的和,然后把这个和放到新的一行里
- 在新的一行的末尾再放一个1
你也可以通过二项式系数来计算新数字,不过这样可能需要花更多的时间来搞明白。