gpt4 book ai didi

Python 递归回溯变量

转载 作者:太空宇宙 更新时间:2023-11-03 19:09:51 25 4
gpt4 key购买 nike

我正在编写一些递归函数。考虑它的原型(prototype)是:

def path(a, row=0, col=0, weight=0, cumulative=[])

我试图在矩阵a中找到一些路径。权重将迄今为止该路径的值相加,并累积跟踪该路径。

在某些时候,这会被调用:

return path(a, row+1, col, weight, cumulative) + path(a, row+1, col+1, weight, cumulative)

现在基本情况如下:

cumulative.append(a[row][col])
weight = weight + a[row][col]
return weight

将当前矩阵元素添加到累加中,添加权重并返回权重。问题是,每次 cumulative 调用追加时,它都会添加到 cumulative 的同一个实例中。如何确保每个递归堆栈帧采用不同的累积副本?

因此,当在基本情况下调用append时,我希望调用的累积值是帧调用者的值,而不是前一个递归堆栈帧的值。

有什么建议吗?谢谢。

最佳答案

您可以使用累积副本进行调用:

return path(a, row+1, col, weight, list(cumulative)) + 
path(a, row+1, col+1, weight, list(cumulative))

关于Python 递归回溯变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13345445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com