Монета подбрасывает Монте Калро, имитирующую точные головы - PullRequest
0 голосов
/ 14 апреля 2019

Я пытаюсь написать функцию для несправедливого броска монеты с четырьмя входами: вес / вероятность получения голов, количество симуляций, количество бросков на сима и точное количество голов, которые я хочу найтивероятность получения.

Приведенная ниже функция возвращает ошибки, которые я не понимаю, для переворачивающейся части:

Счетчик if (cent_heads == nheads) <- counter + 1: условие имеетдлина> 1 и будет использоваться только первый элемент 50

counter = 0
percent_heads = NULL
flip_function <- function(p, nheads, nflips, nsim){
  for(i in 1:nsim){
    flips <- sample(c("H","T"), size = nflips, replace = TRUE, prob = c(p, 1-p))
    percent_heads[i] <- length(which(flips == "H")) / nflips
    if(percent_heads == nheads) counter <- counter + 1
    }
  return(counter/nsim)
}

1 Ответ

0 голосов
/ 14 апреля 2019

Я думаю, что я идиот. После небольшого обдумывания, я полагаю, что заставил его работать. Может ли кто-нибудь умнее меня, пожалуйста, проверьте, что это работает как задумано:

counter = 0
total_heads = NULL
flip_function <- function(p, nheads, nflips, nsim){
for(i in 1:nsim){
flips <- sample(c("H","T"), size = nflips, replace = TRUE, prob = c(p, 1-p))
total_heads[i] <- length(which(flips == "H"))
if(total_heads[i] == nheads) counter <- counter + 1
}
return(counter/nsim)
}
...