Комментарий об использовании v = vector()
вместо v = vector
должен решить проблему так, как вы написали функцию.Если вы заинтересованы в более R-подобном способе выполнения этой функции, попробуйте следующее:
mindice2 = function(n = 10, m = 3) {
rolls = sample(6, size = m * n, replace = TRUE)
rolls = matrix(rolls, nrow = m)
minima = apply(rolls, MARGIN = 2, FUN = min)
cum_mean = cumsum(minima) / seq_along(minima)
return(cum_mean)
}
Вместо того, чтобы производить выборку каждого рулона отдельно, мы делаем все рулоны одновременно (более эффективно), а затемпоместите их в матрицу, где каждый столбец представляет собой бросок кубика m
.Затем мы можем использовать apply
, чтобы найти минимумы, и cumsum
, чтобы вычислить средний минимум после каждого броска.