#------------DM ALI EL MUFTI------------------#
#Devoir Maison fait après discussion avec Rim El Jraidi, William Nelson, Gloria Nguena, Gabriel Mannisadjian
  
set.seed(6584)
#Question 1.1
  #D'après les tests que j'ai pu faire, plus n est grand, plus on a de chance que 
#que la moyenne soit proche de a



options("digits" = 2)
a = runif(1,1,10000)
n =100
p= 1000
X = runif(n,1,a)
M =replicate(p, max(runif(n,1,a)),1)
Moyenne1 = mean(M)
variance = var(M)

Moyenne1
## [1] 5376
#Question 1.2
#Formule générale pour les test :
a1 = trunc(runif(1,1,10000))
n1 =trunc(runif(1,2,10000))
p1= 1000
X1 = runif(n1,0,a1)
M1 =replicate(p1, (sum(X1))*(2/n1),1)
Moyenne2 = mean(M1)

Moyenne2
## [1] 7030
#Pour A = 10
#Pour N =100
a2 = 10
n2 =100
p2= 1000
X2 = runif(n2,1,a2)
M2 =replicate(p2, (sum(runif(n2,1,a2)))*(2/n2),1)
Moyenne2 = mean(M2)
variance2 = var(M2)

Moyenne2
## [1] 11
variance2
## [1] 0.26
#Pour A = 100
#Pour N = 2000
a3 = 100
n3 =2000
p3= 1000
X3 = runif(n3,1,a3)
M3 =replicate(p3, (sum(X3))*(2/n3),1)
Moyenne2 = mean(M3)

Moyenne2
## [1] 101
#Pour A = 1000
#Pour N = 10000
a4 = 1000
n4 =10000
p4= 1000
X4 = runif(n4,1,a4)
M4 =replicate(p, (sum(X4))*(2/n4),1)
Moyenne2 = mean(M4)

Moyenne2
## [1] 1003
## Justification
#D'après les trois tests précédemment fait,
#on remarque que la moyenne se rapproche énormement de la valeur de a.
#Notre hypothese sera donc, a = Moyenne2

#Afin de pouvoir comparer les deux formules utilisées,
#nous allons comparer les variances de chacunes.
#pour la premiere, nous avons une variance de : 2895
#pour la deuxieme, nous avons une variance de : 0.2
#Sachant que la variance de la deuxieme est plus petite, alors la
#deuxieme option est la meilleure, même si la valeur de la première variance
#parait grotesque
variance
## [1] 2895
variance2
## [1] 0.26
#Exercice 2
#Question 2.3

#D'après moi, Bob va probablement gagner très peu d'argent
#car il ne prend pas énormement de risque en ne prenant que 0,1 de a
#en soit sa stratégie se rapporche plus d'une sorte de "peu de risque
#pour peu de gain"
    
 N= 100
  Gains = sample(0, N, replace = T)
  Resultats = sample(0,N,replace = T)
  for (i in 1:N){
    a = runif(1,0,1)
    n =10
    X = runif(n,0,a)
    M = max(X)
    rM = 1.1* M
    if(a - rM > 0){
      Gains[i] = a - rM
      Resultats[i] = 1
    }
  }
  G = mean(Gains)
  R = mean(Resultats)
  
  G
## [1] 0.011
#D'après les résultats que nous avons obtenu, nous remarquons que
#Bob va gagner très peu d'argent comme ce que j'avais proposé dans
#l'hypothèse
  
#Question 2.4
#Afin de pouvoir faire cette question, j'ai pensé que la manière la plus optimisée
  #était de faire deux for imbriqués et de pouvoir remplir chaque donnée
  #de la matrice avec une moyenne de 1000 lancés pour savoir combien de fois
  #la condition de réussite allait s'appliquer pour chacune des possibilité
  
  n = 3
  k = 1
  Mat = matrix(nrow = 10, ncol = 10)
   
    for(i in 1:10){
      for(j in 1:10){
        Results = sample(0,1000,replace = T)
        for(p in 1:1000){
          a=sample(x=(0:10)/10, 1);
          X=sample(x=(0:(10*a))/10, n, replace=TRUE)
          M=max(X);
          if(i/10 == a && j/10 == M)
            Results[k] = 1
          k = k+1
        }
        k =0
        Mat[i,j] = mean(Results)
       
      }
    }
    Mat
##        [,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7]  [,8]  [,9] [,10]
##  [1,] 0.072 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
##  [2,] 0.024 0.055 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
##  [3,] 0.008 0.021 0.054 0.000 0.000 0.000 0.000 0.000 0.000 0.000
##  [4,] 0.008 0.008 0.029 0.033 0.000 0.000 0.000 0.000 0.000 0.000
##  [5,] 0.001 0.010 0.011 0.028 0.051 0.000 0.000 0.000 0.000 0.000
##  [6,] 0.001 0.006 0.014 0.011 0.024 0.024 0.000 0.000 0.000 0.000
##  [7,] 0.002 0.003 0.010 0.020 0.025 0.020 0.034 0.000 0.000 0.000
##  [8,] 0.000 0.003 0.005 0.007 0.009 0.016 0.021 0.037 0.000 0.000
##  [9,] 0.000 0.000 0.006 0.005 0.009 0.015 0.017 0.030 0.025 0.000
## [10,] 0.000 0.001 0.003 0.002 0.005 0.012 0.011 0.014 0.017 0.018
  #On sait que P(A|B) = P(A inter B)/ P(B)
    #Sachant que sur la matrice que nous avons généré, les abscisses
    #representent M et les ordonnées A, on peut directement lire sur
    #la matrice que la valeur est de a = 0,5
    #Le gros problème de cette representation matricielle est la 
    #fioriture de la matrice, en effet, nous n'utilisons que la 
    #moitié de la matrice car M ne peut pas dépasser A.
    
    
    #Question 2.5
    
    #D'après moi ce n'est pas vraiment la meilleure stratégie à avoir,
    #et cela même si les bornes sont correctes car contrairement à la
    #technique du "peu de risque peu de gains" celle ci prend énormement 
    #de risque a mon avis ( Avis donné sans avoir fait les calculs au préalable)
    
    Alpha = 0.3
    Alpha1 = 0.5
    Alpha2 = 0.7
    n =2
  #Pour cette question nous allons tout d'abbord définir une fonction
    TALPHA = function(alpha,n){
     
      Gains = sample(0, N, replace = T)
      Resultats = sample(0,N,replace = T)
    
        a = runif(1,0,1)
        X = runif(n,0,a)
        M = max(X)
        rM = M^(Alpha2)
        if(a - rM > 0){
          Gains = a - rM
         return(Gains)
        }
        else return(0)
    }
    resultat = mean(replicate(1000,TALPHA(Alpha,n)))
    resultat1 = mean(replicate(1000,TALPHA(Alpha1,n)))
    resultat2 = mean(replicate(1000,TALPHA(Alpha2,n)))
    
    resultat
## [1] 0.089
    resultat1
## [1] 0.096
    resultat2
## [1] 0.087
    n=10
    
    resultat = mean(replicate(1000,TALPHA(Alpha,n)))
    resultat1 = mean(replicate(1000,TALPHA(Alpha1,n)))
    resultat2 = mean(replicate(1000,TALPHA(Alpha2,n)))
    
    resultat
## [1] 0.012
    resultat1
## [1] 0.012
    resultat2
## [1] 0.011
    #D'après les résultats que j'ai obtenu, alpha = 0,5 est le meilleur
    #alpha que l'on peut avoir
    
    #D'après moi, plus le N est grand, moins on aura de gains
    
   #Pour n = 10 il s'agit de alpha = 0  ,3
    
    #Exercice 3
    #Question 3.6
    #Si BOB répond oui tout le temps sa probabilité de gagner 
    #sera de 1/2, on peut d'ailleurs schématiser cela suivant un
    #arbre : Soit Alice donne la plus grande soit elle donne la plus petite
    #Dans ces deux issues possibles Bob dit soit non soit oui, donc on se retrouve avec 
    #1 chance sur deux de réussite pour bob.