【发布时间】:2021-02-12 20:54:57
【问题描述】:
函数dice 接受一个参数n,表示单个六面骰子的滚动数。它返回一个长度为n 的向量,其元素为整数b/w 1 和6。我为下面的骰子函数创建了以下代码。当我测试它时,它似乎运行正常。
dice <- function(n) {
x <- c(1:6)
sample(length(x), size = n, replace = TRUE, prob = x)
}
函数kdice 有两个参数,n 和k。参数 n 表示完成的滚动次数。掷骰子的数量由参数 k 表示。该函数应返回 k 个骰子的总和,滚动 n 次。不知何故,我必须在这个函数中实现 dice() 。以下是我到目前为止完成的内容,但是该函数没有返回任何内容。我有一个 If 和 Else 语句,以确保至少 1 个骰子至少掷了 1 次。 While循环就是让NumofDice的总和被输出,直到达到n。希望有任何见解,尤其是如何将函数 Dice() 合并到 kdice() 中。
kdice <- function(k, n){
NumofDice <- sample(1:6, size = k, replace = TRUE)
RollCount = 0
if(k>0 && n>0) {
while(RollCount < n) {
RollCount = RollCount + 1
sum(NumofDice)
}
}
else {
print("No number of dices were rolled")
}
}
【问题讨论】:
-
请注意
prob参数。sample的默认值是骰子每一面的概率相等。您设置prob = 1:6,这意味着1的概率是1/21,概率2 是2/21,概率3 是3/21,等等(因为21是sum(1:6))。将参数留空以使用等概率默认值。 -
这有点令人困惑,因为滚动 n 次骰子 k 次与滚动 n*k 次骰子相同。我认为你有一个问题,因为你使用 length(x) 而不是 x 作为被采样的向量。长度 x 将只是例如6.
-
好的,我将摆脱概率并使用 x 代替长度(x)。谢谢
标签: r