使用python动态编程优化pascals三角形

使用python动态编程优化pascals三角形,python,dynamic,dynamic-programming,pascals-triangle,Python,Dynamic,Dynamic Programming,Pascals Triangle,上述递归实现的时间复杂度是指数级的。有了动态规划的知识,我们如何编写函数fast_pascal(row,col)? 函数应该接受整数行和整数列,并返回(行,列)中的值。注意:行和列从1开始 这就是我试过的 def pascal(row, col): if col == 1 or col == row: return 1 else: return pascal(row - 1, col) + pascal(row - 1, col - 1) 代码给

上述递归实现的时间复杂度是指数级的。有了动态规划的知识,我们如何编写函数fast_pascal(row,col)? 函数应该接受整数行和整数列,并返回(行,列)中的值。注意:行和列从1开始

这就是我试过的

def pascal(row, col):
    if col == 1 or col == row:
        return 1
    else:
        return pascal(row - 1, col) + pascal(row - 1, col - 1)
代码给出了错误的结果。应该是,

def fast_pascal(row,col):
dynamic = [[1]+[1]*(col-1)for i in range(row)]
for row_ind in range(1,row):
    for col_ind in range(1,col):
        dynamic[row_ind][col_ind] = dynamic[row_ind-1][col_ind] + dynamic[row_ind-1][col_ind-1]
return dynamic[row-1][col-1]
def fast_pascal(行、列):
动态=[[1]+[0]*(列-1)表示范围内的i(行)]
对于范围(1,行)中的行索引:
对于范围内的列(1,列):
动态[row_ind][col_ind]=动态[row_ind-1][col_ind]+动态[row_ind-1][col_ind-1]
返回动态[row-1][col-1]

请具体说明您的问题是什么您的问题是什么?你收到错误信息了吗?代码给出错误的结果?
fast_pascal(3,2) == 2
fast_pascal(4,3) == 3
fast_pascal(500,3) == 124251