7 Stimmen

Berechne n-te Wurzel?

Gibt es eine Möglichkeit, die n-te Wurzel aus einem Double in Objective-C zu berechnen?

Ich konnte keine geeignete Funktion finden.

15voto

fceruti Punkte 2373

Sie müssen die Funktion pow verwenden:

pow(d, 1.0/n)

enter image description here

3voto

Niet the Dark Absol Punkte 310257

Mathematisch gesehen ist die n-te Wurzel von x die x-te Potenz von 1/n.

Ich habe keine Ahnung, wie die Syntax von objective-c aussehen würde, aber im Grunde wollen Sie einfach die Potenzfunktion mit 1/n als Exponent verwenden.

1voto

flo von der uni Punkte 738

Bei ungeraden Wurzeln (z. B. kubisch) und negativen Zahlen ist das Ergebnis der Wurzel wohldefiniert und negativ, aber nur mit pow(value, 1.0/n) funktioniert nicht (Sie erhalten 'NaN' zurück - keine Zahl).

Verwenden Sie stattdessen dies:

int f = (value < 0 && (n % 2 == 1)) ? -1 : 1;
root = pow(value * f, 1.0/n) * f

0voto

Albert Renshaw Punkte 16338

Ich habe dies in meinem #Math.h Makros-Datei, die ich bei Bedarf importiere

#define rootf(__radicand, __index) (powf(((float)__radicand),(1.0f/((float)__index))))

Die kubische Wurzel von 20 wäre also rootf(20,3)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X