假设我有一个名为my_func(a,b,s,t)
. 假设,我想a
和b
被值传递,但我想s
和t
被引用传递。如在,我想一些如何通过让我们说(4,5,s',t')
。该函数通过调用 来执行计算my_func(a/2,b/2,s/2,t/2)
。问题是,在递归的“底部”有一个基本案例,它为s
and提供了具体的值t
。
让我举一个小例子:
def e_euclid(a,b,s,t):
if (a == b):
s = 4
t = -3
return a
if (a%2 == 0 and b%2 == 0):
if (s%2 == 0 and t%2 == 0):
return 2*e_euclid(a/2,b/2,s/2,t/2)
else:
return 2*e_euclid(a/2,b/2,(s+b)/2,(t-a)/2)
...
因此,我将此函数称为 ,e_euclid(a,b, something, something)
但随后我必须为s
和提供具体值t
。你们能看到我在这里想做什么吗?
在我返回 (s,t) 的地方进行递归会导致我不希望执行的艰难计算,所以我想这样做。