Ergebnis 1 bis 11 von 11

Javascript Potenzen

  1. #1 Zitieren
    Legende Avatar von Rouvi Sexi
    Registriert seit
    Nov 2007
    Ort
    in the Rouvi-Lounge
    Beiträge
    7.001
    Wie kann ich mit JavaScript Potenzen berechenen ohne Math.pow zubenutzen?

    Das geht mir einfach nicht aus dem Kopf...
    Rouvi Sexi ist offline Geändert von Rouvi Sexi (29.10.2008 um 11:54 Uhr)

  2. #2 Zitieren
    Auserwählter Avatar von haddock
    Registriert seit
    Aug 2005
    Ort
    /dev/null
    Beiträge
    6.575
    Bei posivitven Potenzen kannst du ein for Schleife nehmen oder ein rekursive Funktion.

    Code:
    package potenz;
    public class Main {
        public static void main(String[] args) {
            int basis=5, exponent=5;
            System.out.println("Potenz von 5 bei Exponenten 5:");
            System.out.println(potenz(basis,exponent));
        }
    
        public static int potenz(int basis,int exponent){
            if (exponent > 1){
                return potenz(basis,exponent-1)*basis;
            }
            else{
                return basis;
            }
        }
    
    }
    Das wäre das ganze in beispielhaft in Java.

    Meine Apps im AppStore:
    [Bild: frantic.png]

    haddock ist offline

  3. #3 Zitieren
    Legende Avatar von Rouvi Sexi
    Registriert seit
    Nov 2007
    Ort
    in the Rouvi-Lounge
    Beiträge
    7.001
    Vielen vielen Dank. Das hätte ich alleine nicht hingekriegt. Ich hab zwar ähnliche Sachen im I-Net gefunden, aber doch nicht so ganz zum laufen gekriegt. Also vielen Dank.
    Rouvi Sexi ist offline

  4. #4 Zitieren
    Ritter
    Registriert seit
    Sep 2006
    Beiträge
    1.913
    Wo möglich, ist aber eine Schleife gegenüber einer rekursiven Funktion zu bevorzugen :-)
    Irian ist offline

  5. #5 Zitieren
    Auserwählter Avatar von haddock
    Registriert seit
    Aug 2005
    Ort
    /dev/null
    Beiträge
    6.575
    Wer sagt sowas?
    Ich mag rekursive Funktionen.

    Meine Apps im AppStore:
    [Bild: frantic.png]

    haddock ist offline

  6. #6 Zitieren

    Batmanistrator
    Avatar von Thoronador
    Registriert seit
    Jul 2005
    Ort
    Morrowind, Vvardenfell-Distrikt
    Beiträge
    20.797
    Zitat Zitat von haddock Beitrag anzeigen
    Wer sagt sowas?
    Ich mag rekursive Funktionen.
    Ich stimme Irian da zu.
    Rekursive Funktionen können ja auch schön sein, meist sind sie ganz einfach und schnell geschrieben, das macht einen gewissen Reiz daran aus. Aber versuche mal, z.B. die 100. Fibonacci-Zahl rekursiv und dann vergleichsweise über eine Schleife zu berechnen. Bei der rekursiven Variante ist die Laufzeit nicht mehr lustig. Nicht jede rekursive Funktion muss unbedingt langsamer sein als ihre iterative Entsprechung, und bei wenigen Rekursionsschritten kann man das im Allgemeinen auch vernachlässigen, aber bei großen Werten, die auch mehr Rekursionsschritte mit sich bringen, sollte man iterative Lösungen den rekursiven Lösungen vorziehen.

    Doch nun zurück zur Potenzrechnung ohne entsprechende Potenzfunktion. Das obige Beispiel von dir könnte man noch ein wenig erweitern, indem man auch negative Exponenten und reelle Basen erlaubt. Hier mal ein Beispiel in (Object) Pascal:
    Code:
    function Potenz(basis: real; exponent: Integer): real;
    var i: Integer;
    begin
      if exponent=0 then Result:= 1
      else if exponent<0 then Result:= 1.0/Potenz(basis, -exponent)
      else begin
        Result:= basis;
        for i:=2 to exponent do
          Result:= Result*basis;
      end;
    end;
    Thoronador ist offline

  7. #7 Zitieren
    Ritter
    Registriert seit
    Sep 2006
    Beiträge
    1.913
    Zitat Zitat von haddock Beitrag anzeigen
    Wer sagt sowas?
    Ich mag rekursive Funktionen.
    Fibonacci wurde ja schon angesprochen, da gehört offensichtlichste Lösung (Rekursion) zu den schlechtesten, die man sich vorstellen kann - allerdings würde ich bei Fibonacci auch auf ne Schleife verzichten, sondern die Methode mit konstanter Laufzeit wählen :-)

    Man sollte auch nicht vergessen, dass jeder Funktionsaufruf einen gewissen Overhead hat, d.h. wenn man die gleiche Funktion ein dutzend Mal aufruft, kommt da schon was zusammen. Es gibt sicherlich Algorithmen, die durch Rekursion sehr gut funktionieren - aber imho zählt die Potenz da nicht dazu, da reicht ne Schleife.
    Irian ist offline

  8. #8 Zitieren
    Auserwählter Avatar von haddock
    Registriert seit
    Aug 2005
    Ort
    /dev/null
    Beiträge
    6.575
    Schleifen brauchen auch Variablen.
    Klar, das es etwas Overhead gibt, aber im kleinen Rahmen und bei heutigen Rechner, denke ich, dass man das vernachlässigen kann. Und das man bei größeren Sachen eher Schleifen verwenden sollte, ist auch ok.
    Aber die Verallgemeinerung stört mich etwas.

    Meine Apps im AppStore:
    [Bild: frantic.png]

    haddock ist offline

  9. #9 Zitieren
    Mythos Avatar von Pyrokar
    Registriert seit
    May 2004
    Ort
    ..... hihihähähä hier gibt es Wände und wenn ich dagegen Lauf prall ich ab, wie ein Flummi..... hihihähähääähääääää
    Beiträge
    8.115
    Zitat Zitat von haddock Beitrag anzeigen
    Schleifen brauchen auch Variablen.
    Klar, das es etwas Overhead gibt, aber im kleinen Rahmen und bei heutigen Rechner, denke ich, dass man das vernachlässigen kann. Und das man bei größeren Sachen eher Schleifen verwenden sollte, ist auch ok.
    Aber die Verallgemeinerung stört mich etwas.
    Es geht nicht um die Variablen (das ist ja auch mehr Speicher- als Rechenaufwand) sondern den Unterprozeduraufruf, der benötigt zusätzliche Rechenzeit.
    Ich weiß zwar nicht, wie JavaScript unter der Haube arbeitet, aber an Assembler kann man das ganz gut nachvollziehen.
    [Bild: gg_schuetzen_ani.gif] | ~ DauJones ~ | ~ Klopfers-Web ~ | ~ German Bash ~ |
    Die meisten und schlimmsten Übel, die der Mensch dem Menschen zugefügt hat, entsprangen dem felsenfesten Glauben an die Richtigkeit falscher Überzeugungen.
    Bertrand Russell
    Religionskriege sind Konflikte zwischen erwachsenen Menschen, bei denen es darum geht, wer den cooleren, imaginaeren Freund hat. anonym
    Pyrokar ist offline

  10. #10 Zitieren
    Auserwählter Avatar von haddock
    Registriert seit
    Aug 2005
    Ort
    /dev/null
    Beiträge
    6.575
    Mir ist bewusst um was es geht, aber es hat halt beides Vor und Nachteile.

    Meine Apps im AppStore:
    [Bild: frantic.png]

    haddock ist offline

  11. #11 Zitieren
    Ritter
    Registriert seit
    Sep 2006
    Beiträge
    1.913
    Welchen Vorteil hat in diesem speziellen Fall die Rekursion?

    Niemand bezweifelt, dass es durchaus Fälle gibt, wo Rekursion Sinn macht, aber imho heißt das nicht, dass man sie immer anwenden sollte - weil es mind. genau so viele (wenn nicht gar mehr) Fälle gibt, wo Rekursion bestenfalls suboptimal ist :-)
    Irian ist offline

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •