我正在尝试使用以下方法找到一组数字的立方根
x^(1/3) %% 1 ==0
但我没有得到正确的价值。当我尝试查看控制台中发生的情况时,发现以下行为:
> 4 %% 1
[1] 0
> 64^(1/3) %% 1
[1] 1
为什么给出不同的结果?难道我做错了什么?
从数学角度来看,一种解决方法是先分解x
(pracma::factors
在以下示例中使用),例如,
nRoot <- function(x, n = 3) {
u <- pracma::factors(x)
prod(unique(u)**(table(u) / n))
}
然后你会看到
> nRoot(64) %% 1
[1] 0
> nRoot(216) %% 1
[1] 0
而
> 64^(1/3) %% 1
[1] 1
> 216^(1/3) %% 1
[1] 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句