Während a recent investigation in zufällige Seeds innerhalb Funktionen zu setzen, stieß ich auf eine seltsame Situation. Betrachten Funktionen f
und g
, von denen jeder setzt den Zufallskeim und führt dann eine einfache randomisierte Operation:Inkonsistente Ergebnisse für f (g (x)) zusammen oder aufgeteilt
g <- function(size) { set.seed(1) ; runif(size) }
f <- function(x) { set.seed(2) ; x*runif(length(x)) }
Da jede Funktion, um die Zufallsstart setzt, würde ich jede Funktion erwarten immer haben die gleichen Rückgabewert angesichts der gleicher Eingang Dies würde bedeuten, f(g(2))
sollte das gleiche wie x <- g(2) ; f(x)
zurückgeben. Zu meiner Überraschung ist das nicht der Fall:
f(g(2))
# [1] 0.1520975 0.3379658
x <- g(2)
f(x)
# [1] 0.04908784 0.26137017
Was ist hier los?
LOL. Das Doppelspalt-Experiment in R! Faule Bewertung als QM. Perfekt. –
Schöne Verwendung von 'Josliber' als Verb. –
@JosephWood Ich denke, dass all die Upvotes dafür waren – rawr