Potenzieren mir negativen Doublezahlen
-
Hallo prinzipiell weiss ich wie man potenzioniert:
double i;
double p=1.0;
for (i=0.0; i<exponent; i++)
{
p=p*basis;
}das funktioniert aber nur mit positiven int werten, wie sieht eine funktion aus in der ich mit negativen doublewerten als potenz arbeite?
MfG Waldman
-
Grad umgekehrt
double i; double p=1.0; for (i=exponent; i>0; --i) { p/=basis; }
Nur sollte der exponent besser ein int sein sonst gibts vielleicht überraschungen.
Kurt
-
Hallo,
Bzg. negativen Zahlen: 9^-9 = 1/9^9. Daraus solltest du dir eine nette Funktion zusammenbasteln können (falls es um Lernzwecke geht). Andernfalls kannst du auch pow() (http://www.cppreference.com/stdmath/pow.html) verwenden.
Gruß Caipi
-
naja es ist aber vor der berechnung nicht ersichtlich ob der exponent tatsächlich auch negativ sein wird, nur in den meisten fällen eben...
-
Caipi schrieb:
Andernfalls kannst du auch pow() (http://www.cppreference.com/stdmath/pow.html) verwenden.
Vllt. auch nicht:
http://www.cppreference.com/stdmath/pow.html schrieb:
There's a domain error if base is zero and exp is less than or equal to zero.
-
ZuK schrieb:
Grad umgekehrt
double i; double p=1.0; for (i=exponent; i>0; --i) { p/=basis; }
Nur sollte der exponent besser ein int sein sonst gibts vielleicht überraschungen.
Kurtfür nen negativen exponent geht das aber auch nicht, -0.1 ist ja nicht größer als 0 sondern kleiner, würde es mit fallunterschiedung gehen?
-
ZuK schrieb:
Grad umgekehrt
double i; double p=1.0; for (i=exponent; i>0; --i) { p/=basis; }
Nur sollte der exponent besser ein int sein sonst gibts vielleicht überraschungen.
KurtHier geht es doch darum Potenzen aus Zahlen mit negativem Exponenten zu berechnen, oder? Wenn ja, dann verstehe ich deinen Code nicht. Wenn nein, dann verstehe ich den OP nicht...
@GPC:
GPC schrieb:
Caipi schrieb:
Andernfalls kannst du auch pow() (http://www.cppreference.com/stdmath/pow.html) verwenden.
Vllt. auch nicht:
http://www.cppreference.com/stdmath/pow.html schrieb:
There's a domain error if base is zero and exp is less than or equal to zero.
Das pow() einen Domain-Error liefert, wenn base = 0 && exp < 0 kann ich nachvollziehen. Allerdings verstehe ich nicht, warum selbiger Fehler aus base = 0 && exp = 0 resultiert. Wieso wird nicht 1 zurückgegeben?
Gruß Caipi
-
Caipi schrieb:
GPC schrieb:
Caipi schrieb:
Andernfalls kannst du auch pow() (http://www.cppreference.com/stdmath/pow.html) verwenden.
Vllt. auch nicht:
http://www.cppreference.com/stdmath/pow.html schrieb:
There's a domain error if base is zero and exp is less than or equal to zero.
Das pow() einen Domain-Error liefert, wenn base = 0 && exp < 0 kann ich nachvollziehen. Allerdings verstehe ich nicht, warum selbiger Fehler bei base = 0 && exp = 0 ein Domain-Error entsteht. Wieso wird nicht 1 zurückgegeben?
Zwar is n hoch 0 immer eins, aber nur wenn n != 0 ist. Wenn Basis und Exponent 0 sind, dann ist das Ergebnis undefiniert. Kannst ja im Mathe-Forum danach suchen, da gab's das glaub schon öfters.
-
bin verwirrt, also ein bsp was errechnet werden solle ist:
a = 10^-0.065
a = ?dabei ist die 10 noch konstant, die -0.065 ist variabel
-
Caipi schrieb:
Hier geht es doch darum Potenzen aus Zahlen mit negativem Exponenten zu berechnen, oder? Wenn ja, dann verstehe ich deinen Code nicht. Wenn nein, dann verstehe ich den OP nicht...
Das originale Beispiel sieht mir so aus als ob aus einer Eingabe der Form "1.0e5" -> exponent = 5 ein double Wert errechnet werden sollte.
Mein Beispiel bezieht sich darauf wie mann bei einem negativen exponenten z.b "1.0e-5" -> exponent ist wieder 5 ein double bekommt.
Schaut aber nicht so aus als ob das die Frage war.
Kurt
-
GPC schrieb:
Caipi schrieb:
GPC schrieb:
Caipi schrieb:
Andernfalls kannst du auch pow() (http://www.cppreference.com/stdmath/pow.html) verwenden.
Vllt. auch nicht:
http://www.cppreference.com/stdmath/pow.html schrieb:
There's a domain error if base is zero and exp is less than or equal to zero.
Das pow() einen Domain-Error liefert, wenn base = 0 && exp < 0 kann ich nachvollziehen. Allerdings verstehe ich nicht, warum selbiger Fehler bei base = 0 && exp = 0 ein Domain-Error entsteht. Wieso wird nicht 1 zurückgegeben?
Zwar is n hoch 0 immer eins, aber nur wenn n != 0 ist. Wenn Basis und Exponent 0 sind, dann ist das Ergebnis undefiniert. Kannst ja im Mathe-Forum danach suchen, da gab's das glaub schon öfters.
Dazu gibt es wiedersprüchliche Aussagen, oder? Beispiel: http://de.wikipedia.org/wiki/Potenz_%28Mathematik%29#0_hoch_0.
@Waldman: Verstehe dein Problem erst jetzt richtig und da ich mich mit dem "Potenzkram" nicht wirklich auskenne, nur soviel: http://de.wikipedia.org/wiki/Potenz_%28Mathematik%29#nicht_ganzzahlige_Exponenten. (Wird sich wer anderes noch genauer zu äußern...).
@Zuk: Achso.
Gruß Caipi