Hm also auch bei Dividieren nutzt du schon ein näherungsverfahren ...
Das problem das ich gerade sehe ist.
Wenn ich wirklich echte Dezimal zahlen habe, könnte man eine Division von u.u. unendlich lange fortsetzen.
Klar irgendwann muss man abbrechen.
Das habe ich halt mit 'Precision' nud *Rest erledigt, sodass "nix verloren geht".
Ich habe nun das Schriftliche Dividieren genomen, weil ich dort zu 100% sicher sein wenn ich:
R = A * B rechne
und dann
R / B dividieren.
genau A rauskommt. Und zwar bei jedem A und B (also auch gebrochen) wirde die Division wirklich echt enden.
Sobalt ich aber ein näherungsverfahren verwenden, kommt immer eine ungenauigkeit rein, sodas die Division nicht mehr alleine abbricht, sonden immer "von mir" gestoppt werden muss, (abbruch der rekursion)
Das gleiche taucht bei Power() auf ...
Exp(a*Ln(b)) ist vermutlich die einzige Variante, welche man aber
nur bei gebrochenen Exponenten nutzen sollte!
Das problem bei EXP(x) ist, dass in der Reihenentwicklung x selber lange mit sich selbst multipliziert werden muss.
Um dort eine gute näherung zu bekommt ...
Sonst bekommst du bei großen x-Werten Müll raus ... man darf da halt wirklich erst abbrechen, wenn die Fakultät im Nenner groß gegen über der Potenz im Zähler wird...
Ich glaube ich werde für mein Include anfagen müssen "Zweigleisig" zu arbeiten.
Also fast alle Operationen jeweils als genaues Verfehren anzubieten, oder als Näherungsverfahren.
Vorallem das Wurzelziehen, wo ich derzeit das Heronverfahren verweden, geht auch in die Kaputt, wenn der Wurzelexponen zu groß wird ...
An was ich beim Dividieren auch gedacht habe ist aus: (vereinfacht) 27 / 3 sowas zu machen: 27 * (1/3)
1/3 geht schnell zu berechnen, aber wenns halt n Periode hat, dann würde bei einer multiplikation nie wieder 27 rauskommen, sonden 26,999999999 ...
Naja, bin aufjedenfall schon gespannt dein Include zu sehen ...
@Josh
naja aber die 142857 Periode, taucht ja wirklich nur bei /7 auf
und wie oft dividiert man schon duch 7 ^^
EDIT:
Es muss überall heißen : a^b = EXP(b*Ln(a))
hatte mich verschrieben!