gpt4 book ai didi

python - 输出错误为 0x03BB7390

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:13:03 25 4
gpt4 key购买 nike

def fastMaxVal(w, v, i, aW):
global numCalls
numCalls += 1
try: return m[(i, aW)]
except KeyError:
if i == 0:
if w[i] <= aW:
m[(i, aW)] = v[i]
return v[i]
else:
m[(i, aW)] = 0
return 0
without_i = fastMaxVal(w, v, i-1, aW)
if w[i] > aW:
m[(i, aW)] = without_i
return without_i
else:
with_i = v[i] + fastMaxVal(w, v, i-1, aW - w[i])
res = max(with_i, without_i)
m[(i, aW)] = res
return res

def maxVal0(w, v, i, aW):
m = {}
return fastMaxVal

weights = [1, 1, 5, 5, 3, 3, 4, 4]
vals = [15, 15, 10, 10, 9, 9, 5, 5]
numCalls = 0
res = maxVal0(weights, vals, len(vals) - 1, 8)
print ('max Val =', res, 'number of calls =', numCalls)

程序是关于01背包问题的。我使用决策树来解决问题。但是,我运行程序并得到以下结果。

max Val = function fastMaxVal at 0x03BB7390 number of calls = 0

我的程序有什么问题?

最佳答案

在您的 maxVal0 函数中,您将返回 fastMaxVal 函数本身,而不是其调用结果。

我觉得应该是这样的:

def maxVal0(w, v, i, aW):
m = {}
return fastMaxVal(w, v, i, aW)

此外,您的 fastMaxVal 正在使用 m,但它不在其范围内。

关于python - 输出错误为 0x03BB7390,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45678496/

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