【发布时间】:2015-03-17 11:41:29
【问题描述】:
我试过测量这两种取平方根方法的速度:
> system.time(expr = replicate(10000, 1:10000 ** (1/2)))
## user system elapsed
## 0.027 0.001 0.028
> system.time(expr = replicate(10000, sqrt(1:10000)))
## user system elapsed
## 3.722 0.665 4.494
如果sqrt() 功能无法与** 0.5 竞争,我们为什么需要这样的功能?
(系统为OS X Yusemite,R版本为3.1.2)
【问题讨论】:
-
请参阅
?Syntax了解运算符优先级。求幂^的优先级高于序列运算符:。比较1:4 ^ (0.5);1:(4 ^ (0.5));(1:4) ^ (0.5) -
在对两个备选方案进行基准测试之前,您应该始终检查它们是否给出相同的结果。
标签: r performance square-root sqrt exponentiation