Aan de slagGa gratis aan de slag

Reproduceerbare loterijuitslagen

Je werkt als programmeur voor een online loterij. Volgens de wet moeten de winnaars willekeurig worden gekozen en moet de selectie transparant zijn.

In je werkruimte heb je een lijst met loterijloten, ls_tickets. Er zitten 51 elementen in ls_tickets, één voor elke Amerikaanse staat. Elk element van deze lijst bevat lotnummers. In je werkruimte staat een functie, lottery(), die willekeurig het winnende lot voor elke staat kiest. Je test de functie lottery() door deze parallel toe te passen op ls_tickets met future_map(). Het probleem is dat de winnaars elke keer dat je deze code uitvoert anders zijn. Het pakket furrr is al voor je geladen.

Deze oefening maakt deel uit van de cursus

Parallel programmeren in R

Cursus bekijken

Oefeninstructies

  • Maak een configuratie voor future_map().
  • Zet de seed op 4321 in de configuratie.
  • Geef deze configuratie mee aan future_map().

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren