帕斯卡三角形

2 投票
8 回答
4947 浏览
提问于 2025-04-15 16:03

我想用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

你需要从三角形的最后一行开始,来创建下一行,步骤如下:

  1. 在新的一行开头放一个1
  2. 对于最后一行中的每个数字(除了最后一个),计算这个数字和它右边邻居的和,然后把这个和放到新的一行里
  3. 在新的一行的末尾再放一个1

你也可以通过二项式系数来计算新数字,不过这样可能需要花更多的时间来搞明白。

撰写回答