Zacznij terazZacznij za darmo

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
}

To ćwiczenie jest częścią kursu

Wydajny kod w R

Zobacz kurs

Instrukcje do ćwiczenia

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.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Use <- with system.time() to store the result as res_grow
system.time(___ <- ___)
Edytuj i uruchom kod