这只是一种好奇心 - 我没有真正的问题。 AbsoluteTiming的输出具有明确的模式;谁能确认/解释?
xxx = RandomReal[NormalDistribution[0, 1], 10^6];
Sin[#] & /@ xxx; // AbsoluteTiming
(* {0.0890089, Null} *)
Max[Exp[#] - 0.5, 0] & /@ xxx; // AbsoluteTiming
(* {0.1560156, Null} *)
$Version
8.0 for Microsoft Windows (64-bit) (February 23, 2011)
答案 0 :(得分:2)
是的。让我们检查时间量是否一致:
Differences@
Round[10^5 Sort@
Union[AbsoluteTiming[
Sin[#] & /@
RandomReal[NormalDistribution[0, 1], #];][[1]] & /@
RandomInteger[10^6, 100]]]
(*
-> {1562, 1563, 1563, 1562, 1562, 1563, 1563, 1562, 1562, 1563, 1563, \
1562, 1562, 1563, 1563, 1562, 1562}
*)
修改强>
更好的代码
Differences@
Sort@Union[
Round[10^5 AbsoluteTiming[
Sin[#] & /@
RandomReal[NormalDistribution[0, 1], #];][[1]] & /@
RandomInteger[10^6, 100]]]
答案 1 :(得分:2)
根据文档,“AbsoluteTiming
始终精确到$TimeUnit
秒的粒度,但在许多系统上更准确。”所以评估$TimeUnit
可能会解释这个问题。
答案 2 :(得分:1)
据推测,您的系统时钟只有几分之一秒的粒度才会产生重复的小数。我在Mac上从未注意到这一点 不过很酷。
修改强>
既然我在家,我可以确认这必须是系统特定的:这是我在belisarius答案中的代码输出:
{56, 119, 28, 25, 33, 397, 35, 82, 185, 67, 41, 67, 218, 192, 115, \
28, 74, 16, 187, 222, 194, 8, 129, 399, 68, 75, 71, 34, 5, 37, 62, \
64, 137, 173, 24, 98, 135, 308, 63, 155, 208, 861, 22, 72, 72, 184, \
609, 564, 112, 1011, 118, 81, 158, 90, 351, 33, 35, 68, 10, 126, 39, \
194, 7, 108, 278, 75, 37, 214, 34, 166, 119, 10, 335, 141, 4, 988, \
90, 121, 71, 130, 117, 186, 33, 123, 111, 110, 57, 64, 213, 217, 210, \
204, 98, 247, 20, 1421, 28, 2003, 353}