ich denke mal für euch ist das total easy...für mich naja...ich habe Informatik im Grundstudium für IM und brauche Hilfe bei einer Aufgabe (evtl auch bei mehreren, daher hab ich mich mal angemeldet):
Die folgende Funktion berechnet den Zweierlogarithmus von n nach der Regel:
log2(n)=log2(2*n/2)=log2(2)+log2(n/2)= 1+ log2(n/2)
(die 2 direkt nach dem log sollte tiefergestellt sein..sprich die Basis 2)
Ich versteh die Formel absolut, weiß allgemein auch was der Trivialfall ist...hier mal meine lösung (Einrückung NICHT BERÜCKSICHTIGT, aber vollkommen LOGISCH!!!)
def log(n):
if n==2:
return 1
else:
return 1 + log(n/2)
jetz die Frage, was ist daran falsch? wo ist der haken? man muss berücksichtigen dass wir hier mit ganzzahlen rechnen, das heißt man kann nur Ganzzahlen eingeben und als Ergebnis kommen auch nur Ganzzahlen raus!, Also müsste bei log(3) ja 2 rauskommen....kommt aber nicht....... wo hab ich den Fehler???
Bitte helft mir
![Very Happy :D](./images/smilies/icon_biggrin.gif)