我想做一个返回两个值的函数。第一个应该是ackerman函数的输出,第二个应该是函数被调用的次数。
我已经制作了 Ack 功能:
def ack(m,n):
if m == 0:
return n + 1
elif m > 0 and n == 0:
return ack(m - 1.0, 1.0)
elif m > 0 and n > 0:
return ack(m - 1.0, ack(m, n - 1.0))
我尝试进行全局计数并将其添加到 if 和 elifs 之前并返回它的答案:
global count
count +=1
if m == 0:
return n+1, count
这显然是错误的。每次 m = 0 时它都会返回计数,这将是一个元组。
我怎样才能使它返回(例如)ack(3,4)的答案列表,它应该是125,以及它必须调用ack(m,n)的次数。所以如果我调用 ack(1.0,0.0) 它应该返回 [2.0, 2]。我需要一个列表,因为我需要用这个总和进行一些计算。
我需要知道的原因是因为老师给了我们一个任务,我完全被困住了。