Hier ist der rekursiven Code in Frage:, wie die Ausgabe komplexer rekursive Funktion zu bestimmen, von Hand
def trace(a, b):
if (a > b):
return -1
elif (a == b):
print (a * a)
return a * a
else:
m = (a + b)/2
return trace (a, m) + trace (m + 1, b)
x=trace(1,4)
während ich bin nicht sicher, was diese Funktion tun soll, werden wir die Ausgabe von x=trace(1,4)
finden soll zusammen mit dem Wert von x, von Hand (was bedeutet, dass wir den Leerlauf nicht verwenden können, um uns zu helfen).
Nach einiger Zeit habe ich festgestellt, dass die Funktion 1 und 12,25 drucken wird, was der Ausgabe sein wird, wenn x trace(1,4)
zugewiesen wird.
Allerdings kann ich nicht bestimmen, wie der Wert von X sein wird. Obwohl die Antwort -91.75 ist, habe ich nicht den leisesten Hinweis, wie es abgeleitet wurde (obwohl ich weiß, wie lange es dauern würde, um diese Antwort zu finden, und ich bin mir nicht sicher, wie wir schnell auf die Lösung in kurzer Zeit, zB beim Verfassen einer Prüfung).
Vielen Dank im Voraus für Ihre Hilfe!
Die 8. Zeile sollte 'm = (a + b) // 2' sein. Auf diese Weise würde es in Python2 und Python3 genauso funktionieren. –
@EricDuminil: Jupp, das ist definitiv eine Frage von Python 2, aber kann in Python 3 funktionieren, indem man es so korrigiert. – Sherlock70