2016-09-27 3 views
2

Hier habe ich einen Code geschrieben, der die geometrische Funktion rgeom() verwendet, um zu überprüfen, ob beim ersten Versuch etwas erfolgreich war. Allerdings kann ich nicht sagen, wie oft es dauerte, bis es beim ersten Versuch erfolgreich sein musste. Das ist der Grund, dass ich A & B zuweisen, um seine Werte von k zu erhalten. Wenn k erreicht wurde, sollte es ausdrucken, wie oft es dauerte, aber jetzt druckt es nur k + 1 aus.Geometrische Wahrscheinlichkeit in R mit 2 Variablen

test <- function(k){ 
p <- 1/3 
trials <- 1 
A <- k 
B <- k 
for(i in 1:1000){ 
    while(B > 0){ 
    if (rgeom(1, p) == 0){ 
    B = B-1 
    trials = trials +1 
    break 
    }else { 
    A = A-1 
    break 
    } 
    } 
} 
print(trials) 
} 

Antwort

0

Try this:

p <- 1/3 # parameter of the geometric variable 
n <- 1000 # number of trials 
sum(replicate(n, {rgeom(1,p)})==1) # number of times it was successful on the first try 
+0

Sie mir die Aufgabe zu lösen half :) ich es so lösen endete. Test <- Funktion (k) { p <- 2/3 Studien <- 0 A <- k B <- k für (i in 1: 100) { a <- replizieren (1, { rgeom (1, p)}) == 0 b <- replizieren (1, {rgeom (1, p)}) == 0 if (a == FALSCH) { A <- A-1 Versuche < - Versuch +1 i <- I-1 if (A == 0) { print (Versuche) Anschlag ("A = 0") } } if (b == FALSE) { B < - B-1 Versuche <- Versuche +1 i <- i-1 , wenn (B == 0) { print (Versuche) Anschlag ("B = 0") } } } print (A) print (B) print (Versuche) } – FredH

+0

Eh, wie formatiere ich Code in Kommentaren? – FredH

+1

Sie erhalten nicht viel Formatierung in Kommentaren. Wenn Sie denken, dass Sie eine bessere Antwort haben, fügen Sie sie einfach in eine Antwort-Bearbeitungsbox mit voller Formatierung ein. –

Verwandte Themen