¿Hay alguna manera de calcular la enésima raíz de un doble en objetivo-c?Calcular nth root?
Parece que no encuentro una función adecuada.
¿Hay alguna manera de calcular la enésima raíz de un doble en objetivo-c?Calcular nth root?
Parece que no encuentro una función adecuada.
usted tiene que utilizar la función pow:
pow(d, 1.0/n)
Matemáticamente, la raíz n-ésima de x es x a la potencia de 1/n.
No tengo idea de cuál sería la sintaxis de objetivo-c, pero básicamente solo quieres usar la función de potencia con 1/n como exponente.
Para raíces impares (por ejemplo cúbico) y los números negativos, el resultado de la raíz está bien definido y negativa, pero sólo usando pow(value, 1.0/n)
no funcionará (devuelve 'NaN' - no es un número).
lo tanto, utilizar esto en su lugar:
int f = (value < 0 && (n % 2 == 1)) ? -1 : 1;
root = pow(value * f, 1.0/n) * f
Podría ser conveniente utilizar un flotador explícita aquí 'pow (d, 1,0/n)', ya que de lo contrario no funcionará con n como un entero. – joerick
buena observación – fceruti
Esto no funcionará para las raíces impares (por ejemplo, cúbicas) y los valores negativos. Consulte mi respuesta a continuación. –