Zacznij terazZacznij za darmo

Powtarzalne wyniki loterii

Pracujesz jako programista w internetowej loterii. Zgodnie z prawem, zwycięzcy muszą być wybierani losowo, a sam proces musi być przejrzysty.

W swoim środowisku pracy masz listę losów ls_tickets. Lista zawiera 51 elementów – po jednym dla każdego stanu USA. Każdy element zawiera numery losów. Masz też do dyspozycji funkcję lottery(), która losowo wybiera zwycięski los dla każdego stanu. Testujesz funkcję lottery(), stosując ją do ls_tickets równolegle za pomocą future_map(). Problem polega na tym, że zwycięzcy są inni przy każdym uruchomieniu kodu. Pakiet furrr jest już załadowany.

To ćwiczenie jest częścią kursu

Programowanie równoległe w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz konfigurację dla future_map().
  • Ustaw ziarno (seed) na 4321 w tej konfiguracji.
  • Przekaż tę konfigurację do future_map().

Interaktywne ćwiczenie praktyczne

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

lottery <- function(tickets) {
  sample(tickets, 1)
}

# Create a configuration for future_map()
config <- ___(
# Provide the seed 4321 to the correct argument   
  ___ = ___)

plan(multisession, workers = 4)
winners <- future_map(ls_tickets, lottery,
                      # Supply configuration to future_map()
                      ___ = ___)

plan(sequential)
Edytuj i uruchom kod