2017-02-17 2 views
-3

Вопрос: Имитировать функцию, чтобы бросить кубик. Обратите внимание, что кубик появляется с цифрами 1, 2, 3, 4, 5 или 6. Функция должна делать следующее: вы дважды бросаете кости, и если оба числа одинаковы, верните «Вы выиграете», иначе верните ' You Lose»(подсказка: пример использования()) мой код:Я чувствовал, что мой код не совсем прав, но я не знаю, что не так

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

Вы не можете запустить его, чтобы узнать, правильно ли это? –

+3

Входной параметр x в вашей функции ничего не делает, так как вы все равно назначаете 1: 6 в x на первой строке. – thc

+2

Вам действительно нужно «replace = TRUE» на образце длиной 1? –

ответ

-1

менее утомительно? вероятно, нет, но менее выводится повторяющийся

rolldice <- function() { 
    sample(1:6, size = 1) 
} 

s <- function() 
{ 
    ifelse(rolldice() == rolldice(), "You Win", "You Lose") 
} 
s() 
0

Вместо того, чтобы использовать образец(), вы можете также использовать runif() с круглым() функцией для вашего требования, где вы не должны давать й явно.

rolladice <- function(){ 
    s1 <- round(runif(1,1,6)) 
    s2 <- round(runif(1,1,6)) 
    result <- ifelse(s1 == s2, "You Win", "You Lose") 
    return(result) 
} 

Надеюсь, что это решит вашу проблему.

Смежные вопросы