Q1.
nbAchat <- function(M)
{
mT=0; #nb d'achat
X1=rep(0,times=M); #album vide
X2=rep(1,times=M); #album rempli
while(!setequal(X1,X2)){#tant que l'album X1 n'est pas rempli
vign <- floor((M+1)*runif(1)); # on achète une vignette
X1[vign]<-1; #on colle la vignette
mT=mT+1;# nb d'achat ++
}
return(mT);
}
Q2.
moyAchat <- function(M,N){
xM <- seq(10,M, length=10);#vecteur de 10 valeurs de 10 à M
xT=rep(0,times = 10); # vecteur qui va stocker les différentes moyennes de T par rapport à M
set.seed(42);
for(i in c(1:10)){
x <- 0;
for(j in c(1:N)){
x <- x + nbAchat(xM[i]);
}
xT[i] <- x /N;
}
return(xT);
}
N=100;#nb d'échantillons
M=300; # nb de vignettes de l'album complet
xT <- moyAchat(M,N);
xT;
## [1] 33.8 185.0 374.7 569.3 763.4 985.1 1252.3 1423.3 1629.8 1850.1
xM <- seq(10,M, length=10);
xM;
## [1] 10.00 42.22 74.44 106.67 138.89 171.11 203.33 235.56 267.78 300.00
plot(xM,xT,type="l");
#$P(Y_{i} = 1)=$ probabilité que la vignette suivante soit une nouvelle vignette $= \frac{M-i+1}{M}$
#\newline $P(Y_{i} = 2)=$ probabilité que la vignette suivant la suivante soit une nouvelle vignette $= \frac{i-1}{M} * #\frac{M-i+1}{M}$
#\newline $P(Y_{i} = 3)=$ probabilité que la vignette suivant le suivant de la suivante soit une nouvelle vignette $=(\frac{i-1}{M})^{2} * \frac{M-i+1}{M}$
#\newline ...
#\newline $P(Y_{i} = k)= (\frac{i-1}{M})^{k-1} * \frac{M-i+1}{M}$
Q2.
On obtient une courbe linéaire.
Q3
Les
Q4
-Le calcul de l’espérance de
-Le calcul de la variance de
Les variables
Q5.
Et<-rep(0,times = 10);
for(j in c(1:10)){
Et1<-0;
for(i in c(1:xM[j])){
Et1<- Et1 + (M/(M-i+1)) ;
}
Et[j]<-xM[j]*(log(xM[j])+0.577);
}
xM;
## [1] 10.00 42.22 74.44 106.67 138.89 171.11 203.33 235.56 267.78 300.00
Et;
## [1] 28.8 182.4 363.8 559.6 765.4 978.6 1198.0 1422.5 1651.4 1884.2
par(mfrow = c(1, 2));
plot(xM,xT,type="l");
plot(xM,Et,type="l");
Q6.
Soit Eur le prix qu’il devra dépenser.
Q7.
nbAchat2 <- function(M)
{
a <-0;
for(i in c(1:M)){
a<-a+(1/i);
}
p <-rep(0,times=M);
p[1]<- 1/a;
for(i in c(2:M)){
p[i]<- p[i-1] + 1/(a*i);
}
mT=0; #nb d'achat
X1=rep(0,times=M); #album vide
X2=rep(1,times=M); #album rempli
j<-1;
while(!setequal(X1,X2)){#tant que l'album X1 n'est pas rempli
j<-1;
vign <- floor((M+1)*runif(1)); # on achète une vignette
for(i in c(1:M)){
if((vign < p[i]) || ((i>1) &&(vign >p[i-1]))){
X1[i]<-1; #on colle la vignette
}
}
mT=mT+1;# nb d'achat ++
}
return(mT);
}
moyAchat2 <- function(M,N){
xM <- seq(10,M, length=10);#vecteur de 10 valeurs de 10 à M
xT=rep(0,times = 10); # vecteur qui va stocker les différentes moyennes de T par rapport à M
set.seed(42);
for(i in c(1:10)){
x <- 0;
for(j in c(1:N)){
x <- x + nbAchat2(xM[i]);
}
xT[i] <- x /N;
}
return(xT);
}
xT2 <- moyAchat2(M,N);
plot(xM,xT2,type="l");
on observe que la courbe obtenue est moins linéaire.
nbAchat3 <- function(M)
{
a <-0;
for(i in c(1:M)){
a<-a+(1/(i*i));
}
p <-rep(0,times=M);
p[1]<- 1/a;
for(i in c(2:M)){
p[i]<- p[i-1] + 1/(a*(i*i));
}
mT=0; #nb d'achat
X1=rep(0,times=M); #album vide
X2=rep(1,times=M); #album rempli
j<-1;
while(!setequal(X1,X2)){#tant que l'album X1 n'est pas rempli
j<-1;
vign <- floor((M+1)*runif(1)); # on achète une vignette
for(i in c(1:M)){
if((vign < p[i]) || ((i>1) &&(vign >p[i-1]))){
X1[i]<-1; #on colle la vignette
}
}
mT=mT+1;# nb d'achat ++
}
return(mT);
}
moyAchat3 <- function(M,N){
xM <- seq(10,M, length=10);#vecteur de 10 valeurs de 10 à M
xT=rep(0,times = 10); # vecteur qui va stocker les différentes moyennes de T par rapport à M
set.seed(42);
for(i in c(1:10)){
x <- 0;
for(j in c(1:N)){
x <- x + nbAchat3(xM[i]);
}
xT[i] <- x /N;
}
return(xT);
}
xT3 <- moyAchat3(M,N);
plot(xM,xT3,type="l");