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
Oefeninstructies
- Maak een configuratie voor
future_map(). - Zet de seed op
4321in 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)