2016-11-15 2 views
0

Ich versuche, eine Funktion zu erstellen, im Wesentlichen in Bezug auf Mäntel und Menschen. Wenn eine Garderobe nach dem Zufallsprinzip Mäntel vermischt, wird im Durchschnitt wie viele Menschen mit einem eigenen Mantel enden. Mit k Menge von Menschen. Hier ist meine Funktion, aber wenn ich die Funktion aufrufen, ist es nicht meine Antwort zurückkehrt:Permutation passende Funktion

Umbrella=function(k) 
m=rep(0,10000) 
for (i in 1:10000){ 
Umbrellas=sample(1:k,k) 
Heads=sample(1:k,k) 
m[i]=sum(Umbrellas==Heads) 
} 
m[i] 

Antwort

0

Ich nehme an, Sie R verwenden und dass Sie ziemlich neu sind es.

Sie haben die öffnende geschweifte Klammer nach function(k) und die schließende Klammer am Ende der Funktion ebenfalls verpasst. Außerdem haben Sie den Code geschrieben, als wollten Sie nur m[i] (das i -te Element von m) zurückgeben, aber ich denke, dass Sie mehr Interesse an der Anzahl der korrekten "Person-Coat-Matches" pro Simulation haben.

Umbrella <- function(k){ 
    m = rep(0, 10000) 
    for(i in 1:10000){ 
    umbrellas <- sample(1:k, k)  
    heads <- sample(1:k, k) 
    m[i] <- sum(umbrellas == heads) 
    } 
    return(m) 
} 

Anmerkung: Sie 10.000 Simulationen tun, m wird ein Vektor mit 10.000 Werten zwischen Null und k so sein.

+0

Nachdem dies als Funktion ausgeführt wurde, gibt es einen großen Vektor von 10000 zurück, der maximiert und nicht alle ausdruckt. Wie also würde ich versuchen, einen einzelnen Wert korrekter Treffer zu erhalten? –

+0

@GeorgiaDickinson. Ich bin mir nicht sicher, ob ich verstehe, was du sagst. Suchst du nach dem Durchschnitt der m Werte? Oder vielleicht eine Summe? –

+0

Ich suche nach der Wahrscheinlichkeit, dass Schirme = Köpfe –