计算第n个根?

时间:2011-10-23 15:18:10

标签: objective-c math

有没有办法在objective-c中计算double的第n个根?

我似乎无法找到合适的功能。

4 个答案:

答案 0 :(得分:15)

你必须使用pow功能:

pow(d, 1.0/n)

enter image description here

答案 1 :(得分:3)

在数学上,x的第n个根是x到1 / n的幂。

我不知道objective-c的语法是什么,但基本上你只想使用幂函数和1 / n作为指数。

答案 2 :(得分:1)

对于奇数根(例如立方)和负数,根的结果是明确定义的并且是负数,但仅使用pow(value, 1.0/n)将不起作用(你得到'NaN' - 不是数字)

所以,请改用:

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

答案 3 :(得分:0)

我在#Math.h宏文件中有此文件,该文件在需要时导入

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

所以20的立方根将是rootf(20,3)