Potenz Funktion mit Rekursion
-
Wie viel ist das den jetzt schneller
Probiere es doch erstmal selber herauszufinfen. Zaehle die Anzahl der Multiplikationen beider Varianten und gib mal 'nen Tipp ab. Das hilft dir auch den Code zu verstehen.
-
SG1 schrieb:
Nein, eben nicht. Die Aufgabenstellung fordert "schneller als b-maliges mit sich selber multiplizieren" nicht "schneller als iterativ".
Alles klar, mein Fehler. Ich hatte das "Mit-sich-selbst-muliplizieren" bereits als "Iteration" verstanden im Sinne von Mehrmaligem-Anwenden-der-gleichen-Rechenoperation. Habe mir die Definition von "Iteration" nochmal angesehen, da geht es ja zusätzlich um die schnelle Annäherung an das Ergebnis. Meine Mathe-Semester sind halt schon ne Weile her... Danke für die Auffrischung!
-
Vielen Dankf für die zahlreichen Kommentare. Hätte nicht gedacht, dass ich so schnell hier Tips bekomme!
Hier nochmal die genaue Aufgabenstellung:
Schreiben Sie eine C-Funktion, die für gegebene Zahlen a Element R, Element 2 N, die Potenz a^b rekursiv berechnet. Die Berechnung sollte deutlich schneller erfolgen als durch b-maliges Mit-sichselbst-multiplizieren der Zahl a. BegrÜunden Sie, warum Ihre Funktion schneller arbeitet.
Hinweis: Untersuchen Sie b auf Teilbarkeit durch 2.Habe mir Eure Beiträge jetzt mehrmals durchgelesen und bin mir leider immer noch nicht sicher, welche Lösung die Richtige ist. Kann ich meine Funktion so nicht stehenlassen?
-
imanxxl schrieb:
Habe mir Eure Beiträge jetzt mehrmals durchgelesen und bin mir leider immer noch nicht sicher, welche Lösung die Richtige ist. Kann ich meine Funktion so nicht stehenlassen?
Sollen wir dir jetzt erlauben, faul zu sein? Nein, deine Funktion aus dem ersten Post ist keine Loesung der Aufgabenstellung. Wo beruecksichts du in deiner Funktion die Teilbarkeit von b durch 2?
-
Das x sollte aber ruhig ein double sein.
Untersuchen Sie b auf Teilbarkeit durch 2.
Aber genau das macht doch die Funktion von _--
Wenn du dir noch mal den englischen Wikipedia-Artikel zu Potenzen durchliest, geht es genau darum, die Teilbarkeit durch 2 auszunutzen.
-
Und wenn du dir meinen Beitrag durchlesen magst, ging es mir nicht um die von __--. Ich habe selbst die Vorlage dafuer geliefert ...
-
Schau dir "Divide and Conquer" an und dann weißt du warum es schneller ist.