Si on realise n tirages et comme \(X_i\) est uniforme alors \[ P(max(X_i) \leq k) = (\frac{k}{a})^n = F_M(k)\]
set.seed(42)
a = 5
n = 1
nbtime = 10000
while (n <= a) {
M = replicate(nbtime,max(runif(n,0,a)))
cat("E(M) = ",mean(M), "avec n = ", n, "et avec a = 5 \n")
n = n + 1
}
## E(M) = 2.494701 avec n = 1 et avec a = 5
## E(M) = 3.326641 avec n = 2 et avec a = 5
## E(M) = 3.782723 avec n = 3 et avec a = 5
## E(M) = 4.000049 avec n = 4 et avec a = 5
## E(M) = 4.177666 avec n = 5 et avec a = 5
n = 5
nbtime = 10000
i = 0
for (a in c(5, 10, 20, 40, 80)) {
M = replicate(nbtime,max(runif(n,0,a)))
cat("E(M) = ",mean(M), "avec n = 5 et", " avec a = ", a ," \n")
i = i + 1
}
## E(M) = 4.159439 avec n = 5 et avec a = 5
## E(M) = 8.348009 avec n = 5 et avec a = 10
## E(M) = 16.67831 avec n = 5 et avec a = 20
## E(M) = 33.3233 avec n = 5 et avec a = 40
## E(M) = 66.76165 avec n = 5 et avec a = 80
On observe que plus n est grand plus E(M) se rapproche de a et que plus a est grand plus E(M) s’éloigne de a pour un n fixé. D’après l’experience on obtient : E(M) = \[ \frac {n \times a}{n + 1} \]
En multipiant E(M) par
\[ \frac{n + 1}{n} \] on obtient E(M) = a
On applique la formule de la variance sur l’espérance trouvé précedement \[ Var(M) = E(M^2) - E(M)^2 \]
set.seed(42)
a = 5
n = 1
nbtime = 10000
while (n <= a) {
M = replicate(nbtime,max(runif(n,0,a)))
cat("Var(M) = ",var(M), "avec n = ", n, "et avec a = 5 \n")
n = n + 1
}
## Var(M) = 2.113055 avec n = 1 et avec a = 5
## Var(M) = 1.395933 avec n = 2 et avec a = 5
## Var(M) = 0.9366686 avec n = 3 et avec a = 5
## Var(M) = 0.6564357 avec n = 4 et avec a = 5
## Var(M) = 0.4868283 avec n = 5 et avec a = 5
D’après les observations et les calculs on obtient : V(M) = \[ \frac {n \times a^2}{n + 2} - (\frac {n \times a}{n + 1})^2 \]
set.seed(42)
a = 5
n = 1
nbtime = 10000
while (n <= a) {
Mprime = replicate(nbtime,2/n * sum(runif(n,0,a)))
cat("E(M') = ",mean(Mprime), "avec n = ", n, "et avec a = 5 \n")
n = n + 1
}
## E(M') = 4.989402 avec n = 1 et avec a = 5
## E(M') = 4.978708 avec n = 2 et avec a = 5
## E(M') = 5.035329 avec n = 3 et avec a = 5
## E(M') = 5.004494 avec n = 4 et avec a = 5
## E(M') = 4.993942 avec n = 5 et avec a = 5
n = 5
nbtime = 10000
i = 0
for (a in c(5, 10, 20, 40, 80)) {
Mprime = replicate(nbtime, 2/n * sum(runif(n,0,a)))
cat("E(M') = ",mean(Mprime), "avec n = 5 et", " avec a = ", a ," \n")
i = i + 1
}
## E(M') = 4.984971 avec n = 5 et avec a = 5
## E(M') = 9.978439 avec n = 5 et avec a = 10
## E(M') = 20.01287 avec n = 5 et avec a = 20
## E(M') = 39.99149 avec n = 5 et avec a = 40
## E(M') = 80.28914 avec n = 5 et avec a = 80
Que l’on face varier n ou a l’espérance reste très proche de a. En effet \[ M' = 2 \times \frac {\sum_{i} X_i}{n} = 2 \times E[X_i] = 2 \times \frac{a}{2} = a\]
set.seed(42)
a = 5
n = 1
nbtime = 10000
while (n <= a) {
Mprime = replicate(nbtime,2/n * sum(runif(n,0,a)))
cat("Var(M') = ",var(Mprime), "avec n = ", n, "et avec a = 5 \n")
n = n + 1
}
## Var(M') = 8.45222 avec n = 1 et avec a = 5
## Var(M') = 4.197135 avec n = 2 et avec a = 5
## Var(M') = 2.79637 avec n = 3 et avec a = 5
## Var(M') = 2.06521 avec n = 4 et avec a = 5
## Var(M') = 1.644004 avec n = 5 et avec a = 5
D’après les observations et les calculs on obtient :
La stratégie de Bob \(P(G \leq 1.1M) = P( \frac{G}{1.1} \leq M)\)
set.seed(42)
A = runif(1,0,1)
n = 10
nbtime = 10000
M = replicate(nbtime,max(runif(n,0,A)))
RM = 1.2*M
cat("E(gain) = ",mean(RM <= A), "avec n = ", 10, "et avec a = ",a , " \n")
## E(gain) = 0.1554 avec n = 10 et avec a = 5
gain = 0
for (i in c(1:nbtime)) {
if (RM[i] <= a) {
gain = gain + RM[i] - M[i]
}
}
0 corresponds a face et 1 corresponds a pile.
set.seed(42)
nbtime = 10000
M = replicate(nbtime,sample(x =c(0,1), replace = TRUE))
mean(M == 1)
## [1] 0.49995
La probabilité de Bob de gagner est de \(\frac{1}{2}\) car sa stratégie ne dépends pas de \(A_1\) et \(A_2\) mais dépends seulement du jet de pièce.
Si la valeur donner par Alice est supérieur à 0.5 alors Bob répondra oui ,si la valeur est inférieur à 0.5 alors Bob répondra non.
set.seed(42)
nbtime = 10000
A1 = 0.4
A2 = 0.6
result = c()
M = sample(x =c(0,1),nbtime, replace = TRUE)
for (i in c(1:nbtime)) {
if(M[i] == 0 && A1 < 0.5 || M[i] == 1 && A2 > 0.5) {
result[i] = 1
}
}
mean(result == 1)
## [1] 1
Pour A1 = 0.4 et A2 = 0.6 et Bob gagnera à tout les coups.
set.seed(42)
nbtime = 10000
A1 = runif(nbtime,0,1)
A2 = runif(nbtime,A1,1)
result = c()
M = sample(x =c(0,1),nbtime, replace = TRUE)
for (i in c(1:nbtime)) {
if(M[i] == 0 && A1[i] < 0.5 || M[i] == 1 && A2[i] >= 0.5) {
result[i] = 1
}
else {
result[i] = 0
}
}
mean(result == 1)
## [1] 0.6688
Si Alice tire A1 et A2 dans l’intervalle [0,1] Bob à \(\frac{2}{3}\) chance de gagner contre Alice grâce à la nouvelle stratégie.