问题是: 模拟一个掷骰子的功能。请注意,骰子会出现数字1,2,3,4,5或6.该函数应执行以下操作:掷骰子两次,如果两个数字相同,则返回'You Win'否则返回'你输了'(提示:使用样本()) 我的代码是:
s <- function(x)
{
x = 1:6
s1 <- sample(x, size = 1, replace = TRUE)
s2 <- sample(x, size = 1, replace = TRUE)
result <- ifelse(s1 == s2, "You Win", "You Lose")
return(result)
}
s(5)
即使代码是正确的,有没有更有效的方法来编写它?我认为这有点乏味。
答案 0 :(得分:0)
除了使用sample()之外,您还可以将runif()与round()函数一起用于您的需求,而不必明确地给出x。
rolladice <- function(){
s1 <- round(runif(1,1,6))
s2 <- round(runif(1,1,6))
result <- ifelse(s1 == s2, "You Win", "You Lose")
return(result)
}
希望这能解决您的问题。
答案 1 :(得分:-1)
rolldice <- function() {
sample(1:6, size = 1)
}
s <- function()
{
ifelse(rolldice() == rolldice(), "You Win", "You Lose")
}
s()