1. Nauka
  2. /
  3. Kursy
  4. /
  5. Wydajny kod w R

Connected

ćwiczenie

Pomiar czasu – rozrastający się wektor

Rozrastający się wektor to jeden z grzechów głównych w R – zawsze należy go unikać.

Zdefiniowana poniżej funkcja growing() generuje n losowych liczb ze standardowego rozkładu normalnego, ale za każdym razem, gdy dodawany jest nowy element, powiększa rozmiar wektora!

Uwaga: Standardowy rozkład normalny to rozkład o średniej 0 i odchyleniu standardowym 1.

n <- 30000
# Wolny kod
growing <- function(n) {
    x <- NULL
    for(i in 1:n)
        x <- c(x, rnorm(1))
    x
}

Instrukcje

100 XP

Funkcja growing() jest już zdefiniowana w twoim środowisku pracy.

  • Używając funkcji system.time(), sprawdź, ile czasu zajmuje wygenerowanie n = 30000 losowych liczb ze standardowego rozkładu normalnego za pomocą funkcji growing(). Skorzystaj z operatora <-, aby zapisać wynik w wektorze o nazwie res_grow.