Devoir n°1 de probabilité et simulation

Exercice 1

Q1.1

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 \]

Q1.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 :

Exercice 2

Q1.3

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]
    }   
  }

Exercice 3

Q3.6

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.

Q3.7

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.