という関数があるとしましょうmy_func(a,b,s,t)
。a
andを値渡ししたいb
が、 and を参照渡ししたいs
とt
します。のように、私はいくつか言いたいと思います(4,5,s',t')
。この関数は、 を呼び出して計算を実行しmy_func(a/2,b/2,s/2,t/2)
ます。s
問題は、再帰の「下部」に、とに具体的な値を与える基本ケースがあることです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) を返す場所で再帰を実行すると、実行したくない難しい計算が発生するため、この方法で実行したいと考えています。