计算n次方根?

发布于 2024-12-11 14:19:25 字数 61 浏览 0 评论 0原文

有没有办法计算 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

原来是傀儡 2024-12-18 14:19:25

您必须使用 pow 函数:

pow(d, 1.0/n)

在此处输入图像描述

You have to use the pow function:

pow(d, 1.0/n)

enter image description here

小姐丶请自重 2024-12-18 14:19:25

从数学上讲,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.

毁虫ゝ 2024-12-18 14:19:25

对于奇数根(例如三次)和负数,根的结果是明确定义的并且是负数,但是仅使用 pow(value, 1.0/n) 是行不通的(你会得到 ' NaN' - 不是数字)。

所以,用这个代替:

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

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:

int f = (value < 0 && (n % 2 == 1)) ? -1 : 1;
root = pow(value * f, 1.0/n) * f
站稳脚跟 2024-12-18 14:19:25

我的 #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)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文