计算n次方根?
有没有办法计算 Objective-C 中双精度数的 n 次方根?
我似乎找不到合适的功能。
Is there a way to calculate the nth root of a double in objective-c?
I couldn't seem to find an appropriate function.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您必须使用 pow 函数:
You have to use the pow function:
从数学上讲,x 的 n 次根是 x 的 1/n 次方。
我不知道 Objective-C 的语法是什么,但基本上你只想使用以 1/n 作为指数的幂函数。
Mathematically, the n-th root of x is x to the power of 1/n.
I have no idea what the syntax of objective-c would be, but basically you just want to use the power function with 1/n as the exponent.
对于奇数根(例如三次)和负数,根的结果是明确定义的并且是负数,但是仅使用
pow(value, 1.0/n)
是行不通的(你会得到 ' NaN' - 不是数字)。所以,用这个代替:
For odd numbered roots (e.g. cubic) and negative numbers, the result of the root is well defined and negative, but just using
pow(value, 1.0/n)
won’t work (you get back ’NaN’ - not a number).So, use this instead:
我的
#Math.h
宏文件中有这个,需要时导入#define rootf(__radicand, __index) (powf(((float)__radicand),(1.0f/(( float)__index))))
因此 20 的立方根将是
rootf(20,3)
I have this in my
#Math.h
macros file which I import when needed#define rootf(__radicand, __index) (powf(((float)__radicand),(1.0f/((float)__index))))
So cubed root of 20 would be
rootf(20,3)