Jedes Mal, wenn ich den Code unten ausführe, bekomme ich eine andere Antwort, meistens 1, 3, 4 oder 5. Da ich jedoch eine Million bin, denke ich, dass das ziemlich seltsam ist, also dachte ich, dass da etwas nicht stimmt mein Code. Dies ist das erste Mal, dass ich R verwende, aber ich bin mir nicht sicher, ob es ein mathematischer Fehler oder ein Codierungsfehler ist.Unterschiedliches Ergebnis für jedes Experiment, selbst wenn n = 1.000.000.000 in R, was ist falsch?
Was ich bin zu simulieren:
Es gibt 40 Personen in einer Gruppe, von denen ein Arzt ist.
Am Tag 0
wird eine Person infiziert; dann for i = 1, 2, ..., T
:
- Tag
i
: alle verbleibenden gesunden Menschen hat eine Wahrscheinlichkeit von 0,15 von infiziert; - Tag
i + 1
: der Arzt heilt höchstens 5 Personen (einschließlich sich selbst);
Die oben genannten stoppt bis zum Tag T
, wenn es keine infizierten Menschen mehr gibt.
Mein Code jetzt (Verdacht falsch):
SampleT <- function(n)
{
for (k in 1:n)
{
T <- 0 # day 0
X <- 39 # amount of healthy people
Y <- 1 # amount of infected people
cured <- 0 # amount of people cured by doctor
while(cured < Y)
{
T <- T+1 # increase day by 1 in each loop
infected <- sum((runif(X)<0.15)) # amount of people infected on day T
X <- X-infected # remaining healthy people
Y <- 40-X # total amount of people who have been infected at least once so far
cured <- cured + 5
}
return(T)
}
}
n <- 1000000000
T <- SampleT(n)
mean(T)