帕斯卡三角形 Python
Pascal Triangle Python
所以我一直在研究帕斯卡三角形,但我试图在每一行上制作标签,上面写着类似 Row=0、Row=1、Row=2 的内容。我试图在 Pascal 三角形上的每个新行开始之前放置这些标签。有人可以帮我根据这段代码制作它吗?谢谢
x = int(input("Enter the desired height. "))
list=[1]
for i in range(x):
print(list)
newlist=[]
newlist.append(list[0])
for i in range(len(list)-1):
newlist.append(list[i]+list[i+1])
newlist.append(list[-1])
list=newlist
首先,请避免使用内置函数的名称作为变量名(在您的情况下,list
;我已将其更改为l
)。除此之外,像您提到的那样放置标签只是指您拥有的最外层循环的迭代。以下代码应按预期运行:
x = int(input("Enter the desired height. "))
l = [1]
for i in range(x):
# Modified v
print("Row", i + 1, l)
newlist = []
newlist.append(l[0])
for i in range(len(l) - 1):
newlist.append(l[i] + l[i+1])
newlist.append(l[-1])
l = newlist
这是一个示例 运行:
Enter the desired height. 4
Row 1 [1]
Row 2 [1, 1]
Row 3 [1, 2, 1]
Row 4 [1, 3, 3, 1]
希望对您有所帮助!
如果你从右到左而不是从左到右重新考虑问题,它会简化很多:
rows = int(input("Enter the desired height: "))
array = []
for row in range(1, rows + 1):
array.append(1) # both widen the row and initialize last element
for i in range(row - 2, 0, -1): # fill in the row, right to left
array[i] += array[i - 1] # current computed from previous
print("Row", row, array)
输出
Enter the desired height: 9
Row 1 [1]
Row 2 [1, 1]
Row 3 [1, 2, 1]
Row 4 [1, 3, 3, 1]
Row 5 [1, 4, 6, 4, 1]
Row 6 [1, 5, 10, 10, 5, 1]
Row 7 [1, 6, 15, 20, 15, 6, 1]
Row 8 [1, 7, 21, 35, 35, 21, 7, 1]
Row 9 [1, 8, 28, 56, 70, 56, 28, 8, 1]
我认为代码是不言自明的。
You can Visualise on it here.
def pascal_triangle(degree):
'''
Gives row and column wise enrtry for given degree
'''
Pascal_list =[[1]] #FIrst entry Defined to start
print(Pascal_list[0] ,'\n')
for i in range(1,degree+1): #+1 As we are starting from 1
temp_list =[]
for j in range(i+1): #+1 As we are considering last element
if(j==0):#First Element = 1
temp_list.append(1)
continue
elif(j == i):#Last Element = 1
temp_list.append(1)
continue
else:
temp_list.append(Pascal_list[i-1][j]+Pascal_list[i-1][j-1]) # Addition of Upper Two Elements
Pascal_list.append(temp_list)
print(Pascal_list[i] ,'\n')
return Pascal_list
输入:
Pascal_Triangle = pascal_triangle(4)
print('Pascal_Triangle: ', Pascal_Triangle)
输出:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
Pascal_Triangle: [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
所以我一直在研究帕斯卡三角形,但我试图在每一行上制作标签,上面写着类似 Row=0、Row=1、Row=2 的内容。我试图在 Pascal 三角形上的每个新行开始之前放置这些标签。有人可以帮我根据这段代码制作它吗?谢谢
x = int(input("Enter the desired height. "))
list=[1]
for i in range(x):
print(list)
newlist=[]
newlist.append(list[0])
for i in range(len(list)-1):
newlist.append(list[i]+list[i+1])
newlist.append(list[-1])
list=newlist
首先,请避免使用内置函数的名称作为变量名(在您的情况下,list
;我已将其更改为l
)。除此之外,像您提到的那样放置标签只是指您拥有的最外层循环的迭代。以下代码应按预期运行:
x = int(input("Enter the desired height. "))
l = [1]
for i in range(x):
# Modified v
print("Row", i + 1, l)
newlist = []
newlist.append(l[0])
for i in range(len(l) - 1):
newlist.append(l[i] + l[i+1])
newlist.append(l[-1])
l = newlist
这是一个示例 运行:
Enter the desired height. 4
Row 1 [1]
Row 2 [1, 1]
Row 3 [1, 2, 1]
Row 4 [1, 3, 3, 1]
希望对您有所帮助!
如果你从右到左而不是从左到右重新考虑问题,它会简化很多:
rows = int(input("Enter the desired height: "))
array = []
for row in range(1, rows + 1):
array.append(1) # both widen the row and initialize last element
for i in range(row - 2, 0, -1): # fill in the row, right to left
array[i] += array[i - 1] # current computed from previous
print("Row", row, array)
输出
Enter the desired height: 9
Row 1 [1]
Row 2 [1, 1]
Row 3 [1, 2, 1]
Row 4 [1, 3, 3, 1]
Row 5 [1, 4, 6, 4, 1]
Row 6 [1, 5, 10, 10, 5, 1]
Row 7 [1, 6, 15, 20, 15, 6, 1]
Row 8 [1, 7, 21, 35, 35, 21, 7, 1]
Row 9 [1, 8, 28, 56, 70, 56, 28, 8, 1]
我认为代码是不言自明的。 You can Visualise on it here.
def pascal_triangle(degree):
'''
Gives row and column wise enrtry for given degree
'''
Pascal_list =[[1]] #FIrst entry Defined to start
print(Pascal_list[0] ,'\n')
for i in range(1,degree+1): #+1 As we are starting from 1
temp_list =[]
for j in range(i+1): #+1 As we are considering last element
if(j==0):#First Element = 1
temp_list.append(1)
continue
elif(j == i):#Last Element = 1
temp_list.append(1)
continue
else:
temp_list.append(Pascal_list[i-1][j]+Pascal_list[i-1][j-1]) # Addition of Upper Two Elements
Pascal_list.append(temp_list)
print(Pascal_list[i] ,'\n')
return Pascal_list
输入:
Pascal_Triangle = pascal_triangle(4)
print('Pascal_Triangle: ', Pascal_Triangle)
输出:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
Pascal_Triangle: [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]