Python 优化此递归函数(动态规划)

Python 优化此递归函数(动态规划),python,algorithm,recursion,dynamic-programming,Python,Algorithm,Recursion,Dynamic Programming,我正在解决一个非常简单的算法问题,需要递归和记忆。下面的代码工作正常,但不符合时间限制。有人建议我优化尾部递归,但它不是尾部递归。。这只是学习材料,不是家庭作业 问题: •如果下雨,蜗牛每天可以爬2米,否则1米 •每天下雨的概率为75% •考虑到天数(这很简单,所以这只是一个提示。 对于初始零件集: # suppose cache is allocated cache[1][1] = 0.25 cache[1][2] = 0.75 for i in range(3,targetHeight+1)

我正在解决一个非常简单的算法问题,需要递归和记忆。下面的代码工作正常,但不符合时间限制。有人建议我优化尾部递归,但它不是尾部递归。。这只是学习材料,不是家庭作业

问题:

•如果下雨,蜗牛每天可以爬2米,否则1米

•每天下雨的概率为75%


•考虑到天数(这很简单,所以这只是一个提示。 对于初始零件集:

# suppose cache is allocated
cache[1][1] = 0.25
cache[1][2] = 0.75
for i in range(3,targetHeight+1):
    cache[1][i] = 0
for i in range(days+1):
    cache[i][1] = 1
    cache[i][0] = 1
然后尝试使用初始化的值重写递归部分(您应该自底向上迭代,如下所示)。最后,返回
cache[days][targetlight]
的值

for i in range(2, days+1):
    for j in range(2, targetHeight+1):
        cache[i][j] = 0.75 * cache[i-1][j-2] + 0.25 * cache[i-1][j-1]

我没有遇到我这边的性能问题。height=1000和days=1000返回的时间都不到一秒钟。应该是O(N)。
for i in range(2, days+1):
    for j in range(2, targetHeight+1):
        cache[i][j] = 0.75 * cache[i-1][j-2] + 0.25 * cache[i-1][j-1]