Ex
Une paire de dés justes doit être continuellement roulée jusqu'à tous les résultats possibles 2, 3, ..., 12 ont eu lieu au moins une fois. Développer une étude de simulation pour éstimer le nombre attendu de jets de dés nécessaires.
Solution
# Chapitre 4, no 7
# Chapitre 4, no 7
rdiscret <- function(n=1,p){
v <- vector(mode = "numeric", length = n)
for(i in 1:n){
v[i] <- 1
F <- p[1]
k <- 1
U <- runif(1)
while (U > F){
k <- k+1
F <- F+p[k]
}
v[i] <- k
}
return (v)
}
# Initialise la simulation
set.seed(34156)
n = 100
T <- vector(mode="numeric", length = n)
ptm <- proc.time() #A voir documentation
#Boucle principale
cat("simulation en cours...\n")
for (i in 1:n){
#indicateur de progression
if(i%%100000==0)
cat(".")
#simule l'echantillon (ie T)
T[i] <- 0 # puis on lance tant qu'on a pas tous
coupon <- rep(0,11)
pastous <- TRUE
while ( pastous){
T[i] <- T[i]+1
D<- rdiscret(n=2,p=rep(1,6)/6)
S <- D[1] + D[2]
coupon[S-1] <- coupon[S-1]+1
if (min(coupon) > 0 )
pastous <- FALSE
}
}
cat("\n")
cat("simulation terminee.\n")
#Analyse Statistique
f <-table(T)/m
xbar <- mean(T)
ptm <- proc.time()- ptm #pour calculer le temps de la simulation
#affichage des resultats
cat("Temps de simulation =",ptm[1],"secondes\n\n")
#cat(formatC(f, width = 8,digits = 5,format = "f"),"\n")
cat("xbar =",xbar,"\n")
#\Nettoyage
rm(ptm,i)
# n <- 1;source("No7.R")
Comments
Post a Comment