Мне был задан вопрос, который требует от меня создания фрейма данных для функции, и я не знаю, как с ним работать.
Чтобы оценить стратегии остановки и переключения, мы должны повторитьИгра много раз, чтобы определить пропорцию побед на основе каждой стратегии. Для этого напишите другую функцию с именем monty_hall()
, которая имеет один аргумент iter
, количество итераций и возвращает фрейм данных с iter
строками и пятью столбцами. Эта функция должна вызывать функцию monty_hall_one_play()
. Возможно, вам захочется написать цикл какого-либо типа или попробовать replicate()
.
Столбцы фрейма данных, которые должна возвращать функция monty_hall()
:
car_door
, дает дверь, за которой скрыт автомобиль.
contestant_door
, дает дверь, первоначально выбранную участником.
host_door
, открывает дверь, указанную хозяином.
switch
, результат стратегии переключения;1 - победа, 0 - проигрыш.
stay
, результат стратегии пребывания;1 - выигрыш, 0 - проигрыш.
Пока мой код выглядит так:
monty_hall <- function(iter) {
replicate(iter,monty_hall_one_play())
}
monty_hall(5)
Мой код для функции monty_hall_one_play равен
monty_hall_one_play <- function() {
first <- sample(x = c(1:3),size = 1,replace = FALSE,prob = c(1/3,1/3,1/3))
second <- sample(x = c(1:3),size = 1,replace = FALSE,prob = c(1/3,1/3,1/3))
if (first == 1 & second == 1) {
third = sample(c(2,3),1)
}
if (first == 2 & second == 2) {
third = sample(c(1,3),1)
}
if (first == 3 & second == 3) {
third = sample(c(1,2),1)
}
if (first == 1 & second == 2) {
third = 3
}
if (first == 2 & second == 3) {
third = 1
}
if (first == 3 & second == 1) {
third = 2
}
if (first == 2 & second == 1) {
third = 3
}
if (first == 3 & second == 2) {
third = 1
}
if (first == 1 & second == 3) {
third = 2
}
return(c(first,second,third))
}
«Первое», «второе» и «третье» соотносятся с назначенными элементами.
Это были направления:
Напишите функцию с именем monty_hall_one_play()
, котораяне принимает аргументов и возвращает числовой вектор с каждым элементом, представляющим следующее:
первый элемент - дверь, за которой скрыт автомобиль (выбирается случайным образом из 1:3
)
вторым элементом является дверь, первоначально выбранная участником (выбранная случайным образом из 1:3
)
третий элемент - дверь, открываемая хозяином
если участник выбрал дверь с автомобилем, ведущий случайным образом выбирает одну из двух оставшихся дверей
, если участник выбрал дверьотличается от двери с машиной, хозяин выбирает дверь, которая не спрятанаВ машине
Я не уверен, как создать фрейм данных и саму функцию.