2016-04-18 11 views
-1

Ich versuche, Zufallszahlen für eine Simulation zu generieren (das folgende Beispiel verwendet zur Vereinfachung die Gleichverteilung). Warum würden diese beiden Methoden unterschiedliche Mittelwert erzeugen (a: 503.2999, b: 497.5372), wenn 10k mal mit derselben Ausgangszahl abgetastet:Richtiger Weg zum Zeichnen von Zufallszahlen für eine Simulation

set.seed(2) 

a <- runif(10000, 1, 999) 

draw <- function(x) { 
    runif(1, 1, 999) 
} 

b <- sapply(1:10000, draw) 
print(c(mean(a), mean(b))) 

In meinem Modell, die Zufallszahl für das erste Verfahren würde innerhalb einer Simulation referenziert wird unter Verwendung eines [sim_number ] während in der zweiten Instanz die runif Funktion innerhalb der Simulationsfunktion selbst platziert würde. Gibt es einen richtigen Weg?

+3

Sie müssen den Startwert nach dem ersten zufälligen Zeichnen zurücksetzen. – joran

+0

Fantastisch, danke @joran – ToroJ

Antwort

0

Der Vollständigkeit halber lautet die Antwort, dass Sie den Startwert vor jeder zufälligen Ziehung festlegen müssen, wenn Sie möchten, dass sie identisch sind.