Использование научной нотации 10^6
в R-коде (как я обычно делаю) приводит к значительному времени вычисления, чем использование представления калькулятора 1e6
:
> system.time(for (t in 1:1e7) x=10^6)
utilisateur système écoulé
4.792 0.000 4.281
> system.time(for (t in 1:1e7) x=1e6)
utilisateur système écoulé
0.804 0.000 1.051
> system.time(for (t in 1:1e7) x=exp(6*log(10)))
utilisateur système écoulé
6.301 0.000 5.702
Почему это так, что R recomputes 10^6
примерно в то же время, что и он вычисляет exp{6*log(10)}
? Я понимаю, что R выполняет функцию при вычислении 10^6
, но почему она была закодирована таким образом?