-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdice_rolls.R
More file actions
84 lines (63 loc) · 1.31 KB
/
Copy pathdice_rolls.R
File metadata and controls
84 lines (63 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
library(tidyverse)
library(furrr)
plan(multisession)
one_roll <- \(n) {
Alice <-
sample(
x = 1:6,
size = 1,
replace = TRUE) %>%
`/`(6) |>
sqrt()
Bob <-
sample(
x = 1:6,
size = 2,
replace = TRUE) |>
max() %>%
`/`(6)
tibble(
A = Alice,
B = Bob
)
}
run_rolls <- \(times) {
future_map_dfr(.x = 1:times,
.f = roll_dice,
.options = furrr_options(seed = NULL)) |>
mutate(win = case_when(A > B ~ "A", B > A ~ "B", .default = "T")) |>
count(win)
}
df <- run_rolls(1e6)
df |> kable()
df |>
ggplot(aes(x = win, y = n, fill = win)) +
geom_col() +
scale_fill_viridis_d() +
theme_minimal()
pick_num <- \(n){
Alice <-
runif(1) |>
sqrt()
Bob <-
runif(2) |>
max()
tibble(
A = Alice,
B = Bob
)
}
run_nums <- \(times) {
future_map_dfr(.x = 1:times,
.f = pick_num,
.options = furrr_options(seed = NULL)) |>
mutate(win = case_when(A > B ~ "A", B > A ~ "B", .default = "T")) |>
count(win)
}
df2 <- run_nums(1e6)
df2 |> kable()
df2 |>
ggplot(aes(x = win, y = n, fill = win)) +
geom_col() +
scale_fill_viridis_d() +
theme_minimal()