Utilizzando la notazione scientifica 10^6
in un codice R (come ho abitualmente io) si traduce in un tempo significativamente più lungo di calcolo che usare la rappresentazione calcolatrice 1e6
:Perché utilizzare l'esponenziazione (ad es. 10^6) richiede 4 volte più a lungo rispetto all'utilizzo della notazione della calcolatrice (ad es. 1e6) in R?
> 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
Perché è il caso che R ricalcola 10^6
in circa il le stesse volte che calcola exp{6*log(10)}
? Capisco il fatto che R esegua una funzione durante il calcolo di 10^6
, ma perché è stato codificato in questo modo?
Direi che uno è un numerica letterale che deve essere tradotto solo mentre l'altro è un'espressione che deve essere prima valutata. –
Perché pensi che R calcoli '10^6' tramite' exp (6 * log (10)) '? – cryo111
@ cryo111: Non so come R calcoli '10^6' ma ci vuole tanto quanto usare' exp (6 * log (10)) '. Riformulerò questa frase, grazie. –