2017-02-17 4 views
-3

Die Frage ist: Simulieren Sie eine Funktion, um einen Würfel zu werfen. Beachten Sie, dass ein Würfel mit den Zahlen 1, 2, 3, 4, 5 oder 6 auftaucht. Die Funktion sollte Folgendes tun: Sie würfeln zweimal, und wenn beide Zahlen gleich sind, dann geben Sie 'Sie gewinnen' zurück verlieren‘You (Hinweis: Verwendung Probe()) mein Code:Ich fühlte meinen Code ist nicht genau richtig, aber ich weiß nicht, was los ist

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) 

Auch wenn der Code richtig ist, ist es ein effektiver Weg, um es zu schreiben? Ich denke, es ist ein bisschen langweilig.

+0

Sie können es nicht ausführen, um herauszufinden, ob es richtig ist? –

+3

Der x-Eingangsparameter in Ihrer Funktion tut nichts, da Sie sowieso in der ersten Zeile 1: 6 zu x zuweisen. – thc

+2

Brauchen Sie 'replace = TRUE' wirklich für ein Sample der Länge 1? –

Antwort

-1

weniger langweilig? wahrscheinlich nicht, aber weniger repitition

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

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

Statt Probe() verwenden Sie können auch runif() mit runden() -Funktionen für Ihre Anforderung verwenden, wenn Sie x nicht explizit geben müssen.

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

Hoffe, dass dies Ihr Problem lösen wird.

Verwandte Themen