Ermittlung der Stellen einer Zahl



  • Besser IMHO: Solange durch 10 Teilen, bis man auf 0 kommt:

    hmm ich würd sagen besser ist die performantere alternative von beiden wobei ich nicht aus dem hut weiss welche schneller ist... Wie ist denn ln implementiert?(mit taylor-reihen oder ist das ein riesiger lookuptable...)



  • Bashars Code funktioniert aber auch mit 0 und mit negativen Werten...

    MfG Jester



  • Meinem schlechten und ungenauem Test (RDTSC, ein Durchlauf) zufolge ist die log-Version 50 bis 100 mal langsamer als die Schleifen-Version.



  • Hui, das hätte ich ehrlich gesagt nicht erwartet... man lernt nie aus.
    Man sollte halt doch messen und nicht schätzen. 🙄



  • Bashars Code funktioniert aber auch mit 0 und mit negativen Werten...

    na gut aber die anpassung von heliums code diesbezüglich ist ja nur ein witz

    Hui, das hätte ich ehrlich gesagt nicht erwartet
    hätte auch geschätzt das der log nicht so schlecht abschneidet...



  • template<class T>
    T gpt(T a, T b, int p)
    {
    if(p == 0)
    return a;
    return gpt(a*b, b, p-1);
    }
    
    template<class T>
    int stellen(T a)
    {
    a = abs(a);
    int z = 1;
    while(true)
    {
    if(a < gpt(T(10),T(10),z))
    return z+1;
    ++z;
    }
    }
    
    " EDIT_X: Dieser Code ist Mist und funktioniert höchstwahrscheinlich nicht. "


  • Windalf schrieb:

    Bashars Code funktioniert aber auch mit 0 und mit negativen Werten...
    na gut aber die anpassung von heliums code diesbezüglich ist ja nur ein witz

    Das schon, aber damit verliert der Code imho viele seiner Vorzüge:
    Er wird länger und er enthält Fallunterscheidungen.

    MfG Jester



  • Er wird länger und er enthält Fallunterscheidungen
    ohne das jetzt zu testen

    static_cast<int>(zahl?log10(abs(zahl)):1)
    

    ist glaub ich noch erträglich oder 😃

    Gruss Windalf



  • Ne, find ich absolut häßlich. Da liebr Bashars Code.
    Sowas kommt mir in meine Projekt nicht rein.

    Außerdem ist er länger und enthält ne Fallunterscheidung. Der Versuch die auch noch zu kaschieren macht es sicher nicht besser.

    MfG Jester



  • @Jester
    Auwei ist jetzt kein witz aber ich progge fast immer so...



  • Gegen C ? A : B ist ja auch nichts einzuwenden, wenn man es überlegt einsetzt. Leidet aber die Lesbarkeit daraunter, so ist es schlecht. Ich kann soetwas zwar auch ohne Probleme lesen, aber angenehmer ist es schon so, wie Bashar vorgschlagen hat.


Anmelden zum Antworten