Hochzahlen ohne pow()-Funktion



  • bodensee14 schrieb:

    Wie kann ich außer mit der Funktion pow() noch Hochzahlen berechnen?

    double myPow(double b,double e){
       return exp(log(b)*e);
    }
    


  • falls du potenzieren für integers brauchst:
    (unter 'some elementary functions')

    edit: Link entfernt



  • hey, tactx kann meine postings editieren?
    ach ja, der ist ja jetzt mod. was ist denn mit crackwitz? will er nicht mehr?
    tactx: haste dir das buch wenigstens gezogen?



  • @net
    Kann's sein, dass der Link leicht illegal war?



  • GPC schrieb:

    @net
    Kann's sein, dass der Link leicht illegal war?

    das weiss ich nicht.
    die seite sah eigentlich ganz vernünftig aus, also nicht wie so'ne crackerpage mit sexbildern an jeder ecke...



  • net schrieb:

    GPC schrieb:

    @net
    Kann's sein, dass der Link leicht illegal war?

    das weiss ich nicht.
    die seite sah eigentlich ganz vernünftig aus, also nicht wie so'ne crackerpage mit sexbildern an jeder ecke...

    Ja, langweilig halt. Der Link ist trotzdem wegen Verdachts auf illegalität geflogen. :p

    Ach ja, seitdem du dieses Buch empfohlen hast, steht's auf meiner To-Buy Liste, allerdings hab ich da mal kurz reingeschnuppert (Probekapitel natürlich 🤡 ) und stellte fest, dass der Kerl 'n ziemlich Hardcore-Bitschieber ist, oder?
    Oh, ich sah auch einige "normale" Funktionen, allerdings in der Unterzahl^^

    Und c.rackwitz ist von seinem Mod Posten zurückgetreten.



  • net schrieb:

    hey, tactx kann meine postings editieren?
    ach ja, der ist ja jetzt mod.

    true

    net schrieb:

    was ist denn mit crackwitz? will er nicht mehr?

    true

    net schrieb:

    tactx: haste dir das buch wenigstens gezogen?

    false

    Wir halten es für unwahrscheinlich, dass Addison-Wesley seine Bücher verschenkt. Links zu zweifelhaftem Content bitte unterlassen, das macht mir nur unnötig Arbeit und dir nur unnötig Probleme. Desweiteren wollen wir darüber nicht weiter diskutieren 😉

    PS: Ich weiss, dass du es gut meinst.



  • GPC schrieb:

    ...und stellte fest, dass der Kerl 'n ziemlich Hardcore-Bitschieber ist, oder?

    klar, aber das buch ist einzigartig. so richtig was für 'echte' programmierer, ...denn es gibt viel zu viele blöde 'alles-was-ich-schon-immer-wissen-wollte-und-noch-viel-mehr-was-ich-niemals-brauchen-werde-c++-pronix-in-21-tagen' bücher.



  • Wie wäre es damit:

    int potenz(int z, int p)
    {
        return (z <<= p - 1);
    }
    


  • Funktioniert das überhaupt mit einem einzigen Testfall? 👎



  • Jup stimmt, shift nach links multipliziert ja nur mit 2 hoch n. War ein Denkfehler meinerseits 🙄



  • Aber jetzt hab ich's 😉

    int potenz(int z, int p)
    {
        if(p)
            return potenz(z, p - 1) * z;
        else
            return 1;
    }
    


  • was ist wenn ich hoch (minus-1) rechnen will 🙂 ?



  • @jbo: Erstens solltest du noch negative Potenzen betrachten (die verlassen übrigens den int-Wertebereich) und zweitens gibt es noch eine schnellere Rekursion:

    double potenz(double b,int e)
    {
      if(e==0) return 1;
      if(e<0) return 1/potenz(b,-e);
    
      double p2=potenz(b,e/2);
      if(e%2)
        return p2*p2*b;
      else
        return p2*p2;
    }
    

Anmelden zum Antworten