C 数的X根
我需要取一个数字的根,N是数字,x是根 2^(1/x) ^作为一种力量,而不是异或 我曾经尝试过使用POW函数,但每当我尝试将一个变量作为第二个参数时,它都非常讨厌我C 数的X根,c,C,我需要取一个数字的根,N是数字,x是根 2^(1/x) ^作为一种力量,而不是异或 我曾经尝试过使用POW函数,但每当我尝试将一个变量作为第二个参数时,它都非常讨厌我 #include <stdio.h> #include <math.h> int main(int argc, char **argv) { double root = 4; double root_result = 0; root_result = pow(2,1/root);
#include <stdio.h>
#include <math.h>
int main(int argc, char **argv)
{
double root = 4;
double root_result = 0;
root_result = pow(2,1/root);
printf("%f",root_result);
return 0;
}
可能还有更好的选择。我能找到的唯一其他函数是exp
,但这些都是基本的e函数,在我的例子中这并没有什么帮助
你喜欢这个工作吗
exp(log(abs(1))/n))
n是我想要的根 将
-lm
添加到链接命令行以包含数学库。一些平台需要这样做;其他人则不然。考虑到该错误,您很有可能需要-lm
日志/乘法/反日志方法的可能副本可能受到exp()操作放大精度的限制。。。但这肯定是一种获得不受支持的电源值的方法。我认为不需要abs()
(abs(1)==1
-但无论如何,您可能想要2而不是1),并且使用exp()
和log()
将或多或少提供正确的答案,但是你会遇到同样的链接问题——函数会在数学库中。再次感谢你的帮助。哇,这很有效。有没有一种方法可以让我绕过这个链接器?当你使用数学库中的函数时,没有一种方法可以避免链接数学库。很久以前,并不是所有的机器都包含FPU(浮点单元),所以有时需要包含浮点仿真的数学库,有时需要使用硬件FPU的版本。因此,数学库是分开的,以便更容易地进行切换。正如我所指出的,一些平台在主标准库中包含数学函数,因此您不需要-lm
链接器选项(但是有一个空库,因此如果您使用它,就不会出现错误)。
exp(log(abs(1))/n))