Hàm mô phỏng trò chơi Monty Hall
monty_hall_simulator <- function(num_simulations) {
# Đếm xem số lượng chiến thắng của mỗi cách chơi
stay_wins <- 0
switch_wins <- 0
# Chạy mô phỏng
for (i in 1:num_simulations) {
# Đặt xe hơi vào một trong 3 cửa
car_location <- sample(1:3, 1)
# Người chơi tiến hành chọn 1 trong 3 cửa
initial_choice <- sample(1:3, 1)
# Người dẫn chương trình mở 1 cửa không có xe ra
monty_opens <- setdiff(1:3, c(initial_choice, car_location))
# Người chơi chọn giữ nguyên cửa hoặc thay đổi cửa
## Người chơi thay đổi cửa
final_choice <- setdiff(1:3, c(initial_choice, monty_opens))
## Kiểm tra xem nếu không đổi cửa thì có được không
if (initial_choice == car_location) {
stay_wins <- stay_wins + 1
} else if (final_choice == car_location) {
switch_wins <- switch_wins + 1
}
}
# Trả kết quả
return(list(stay_wins = stay_wins, switch_wins = switch_wins))
}
Chạy mô phòng trò chơi 1,000,000 lần
sim_results <- monty_hall_simulator(1000000)
Kết quả
cat("Số người chơi giữ nguyên lựa chọn thắng:", sim_results$stay_wins, "\n")
## Số người chơi giữ nguyên lựa chọn thắng: 333099
cat("Số người chơi thay đổi lựa chọn thắng:", sim_results$switch_wins, "\n")
## Số người chơi thay đổi lựa chọn thắng: 666901