我正在尝试创建一个模拟n次骰子的函数,n次计算每个骰子中骰子结果的最小值,然后计算最小值的平均值并将值存储到向量中。
append()
我这样调用函数:mindice() 输出为:v [i] <-mean(minima)中的错误:类型为'closure'的对象不可子集
任何帮助将不胜感激
答案 0 :(得分:0)
我不知道这是否符合您的期望。此函数同时返回最小滚动矢量和平均滚动矢量
mindice <- function(n = 10, m = 3)
{
minima <- vector("numeric")
for(i in 1:n){
minima = c(minima, min(sample(6,m,replace=T)))
}
list(minimum_values=minima,
mean_minima=mean(minima))
}
mindice()
答案 1 :(得分:0)
关于使用bulletVector.erase(std::remove_if(
bulletVector.begin(),
bulletVector.end(),
[](auto const& b) { return b->getDuration() == 0; }),
bulletVector.end());
而不是v = vector()
的注释应解决您编写函数的方式中的错误。如果您对使用类似R的方法感兴趣,请尝试以下操作:
v = vector
我们一次完成所有卷,而不是分别采样每个卷(更有效),然后将它们放在矩阵中,其中每一列都是一卷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
来计算每次滚动后的最小值最小值。