####################### Exercice1 Q1.1 ########################
set.seed(2)
m=10000
a=5
n=2
f<-function(a){#E(M) en fonction de n
M=replicate(m,max(runif(n)*a))
return (sum(M)/m)
}
x=1:20
y=lapply(x,f)
plot(x,y,xlab="a",ylab="E(M) expérimentale")
#la courbe montre que l'esperance est lineaire en fonction de a donc on peut déduire que a est un facteur dans l'espérance ie E(M)=a*k où k est le coefficient directeur de la droite qu'on observe sur le graphe.
m1=10000
a=5
f2<-function(n){#E(M) en fonction de n
M=replicate(m,max(runif(n)*a))
return (sum(M)/m) #on renvoi la moyenne des max par rapport au nombre de
}
f3<-function(n){#EX=a*(n/n+1) l'esperance theorique trouvée et demontrée est
return ((a*n)/(n+1)) #on renvoi la moyenne obtenu à partir des maximum dans M
}
x1=2:30 #on teste l'esperance avec a fixé et pour n qui va de 2 à 30
y1=lapply(x1,f2)
plot(x1,y1,xlab="n",ylab="E(M) experimentale",col="red")
lines(x1,y1,col="red")
x3=2:30 #on teste l'esperance avec a fixé et pour n qui va de 2 à 30
y3=lapply(x3,f3)
plot(x3,y3,xlab="n",ylab="E(M) théorique",col="blue")
lines(x3,y3,col="blue")
#on remarque d'après la courbe que l'esperance se rapproche de "a" le nombre choisit par alice lorsque n devient grand
# l'étude de l'espérance est bien en accord avec la théorie en comparant les 2 graphes.
#### Variance
#Var(M)=E((M-E(M))^2) =E(M^2) - E(M)^2
m2=10000
n=2
fX2<-function(a){#E(M^2)
M=replicate(m2,(max(runif(n)*a))^2)
return (sum(M)/m2)
}
fX3<-function(a){#(E(M))^2
M=replicate(m2,max(runif(n)*a))
return ((sum(M)/m2)^2)
}
VX<-function(a){#Var(M) en fonction de a
return (fX2(a)-fX3(a))
}
x2=-100:100
y2=lapply(x2,VX)
plot(x2,y2,xlab="a",ylab="Var(M) expérimentale")
#on remarque bien que à n fixé la variance expérimentale en fonction se comporte comme la fonction f(a)=a^2 donc on en déduit que Var(X)=a^2 * K (où K est un terme en facteur à a^2 qu'on ne connait pas qui doit dépendre de n )
m2=10000
a=5
fX2n<-function(n){#E(M^2)
M=replicate(m2,(max(runif(n)*a))^2 )
return ((sum(M))/m2)
}
fX3n<-function(n){#(E(M))^2
M=replicate(m2,max(runif(n)*a))
return ((sum(M)/m2)^2)
}
VXn<-function(n){#Var(M) en fonction de n
return (fX2n(n)-fX3n(n))
}
x3=2:20
y3=lapply(x3,VXn)
Variance<-function(n){#Var(M)=n*(a^2) / (n+2)*(n+1)^2 trouvée et demontrée théoriquement
return ((a*a* n) / ((n+2)*((n+1)^2)) )
}
x4=2:20
y4=lapply(x4, Variance)
#courbe experimentale tracé en rouge ,courbe théorique tracé en bleu
plot(x4,y4,xlab="n",ylab="Var(M)",col="red") #la courbe de la variance trouvé theoriquement et demontrée .
lines(x4,y4,col="red") #
points(x3,y3,col="blue")
lines(x3,y3,col="blue")
# on constate avec le graphe que avec n qui devient grand la variance se rapproche de 0 ie M devient constante et egal à E(M) qui vaut "a" pour "n" grand . Et constate aussi que la courbe obtenu experimentalement se rapproche de la courbe de la variance calculée théoriquement .
####################### Exercice1 Q1.2 ########################
set.seed(3)
### Esperance
m=10000
n=2
f<-function(a){
M=replicate(m,(2/n)*sum(runif(n)*a))
return (sum(M)/m)
}
x=1:40
y=lapply(x,f)
plot(x,y,xlab="a",ylab="E(M') expérimentale") #esperance en fonction de "a"
# on observe d'après la courbe que l'esperance est linéaire en fonction de "a" et de coefficient directeur k donc E(X)=a*k
#on regarde ici l'esperance avec a fixé et pour n qui va de 2 à 30
m1=10000
a=5
f2<-function(n){
M=replicate(m1,(2/n)*sum(runif(n)*a))
return (sum(M)/m1) #on renvoi la moyenne des max par rapport au nombre de
}
x1=2:30
y1=lapply(x1,f2)
plot(x1,y1,xlab="n",ylab="E(M')")
abline(h=a, col="blue") #tracé de l'asymptote en 5
#on remarque d'après la courbe que l'esperance est très proche de "a" quelque soit la valeur n donc on peut que E(X)=a*1 donc k plus haut valait donc 1.
#l'esperance theorique trouvée et demontrée est EX=a
#Bilan on constate que E(X)=a qui est bien en accord avec la valeur de l'espérance calculé théoriquement qui vaut a.
### Variance
#Var(M')=E((M'-E(M'))^2) =E(M'^2) - E(M')^2
#variance en fonction de a et avec n fixé
m2=10000
n=2
fX2<-function(a){#E(M'^2)
M=replicate(m2,((2/n)*sum(runif(n)*a))^2)
return (sum(M)/m2)
}
fX3<-function(a){#(E(M'))^2
M=replicate(m2,(2/n)*sum(runif(n)*a))
return ((sum(M)/m2)^2)
}
VX<-function(a){
return (fX2(a)-fX3(a))
}
x2=-100:100
y2=lapply(x2,VX)
plot(x2,y2,xlab="a",ylab="Var(M') expérimentale")
#on remarque bien que à n fixé la variance expérimentale en fonction se comporte comme la fonction f(a)=a^2 donc on en déduit que
#Var(X)=a^2 * K (où K est un terme en facteur à a^2 qu'on ne connait pas qui doit dépendre de n )
m2=10000
a=5
fX2n<-function(n){#E(M'^2)
M=replicate(m2,((2/n)*sum(runif(n)*a))^2 )
return ((sum(M))/m2)
}
fX3n<-function(n){#(E(M'))^2
M=replicate(m2,(2/n)*sum(runif(n)*a))
return ((sum(M)/m2)^2)
}
VXn<-function(n){
return (fX2n(n)-fX3n(n))
}
x3=2:20
y3=lapply(x3,VXn)
Variance<-function(n){#Var(M')=a^2 / 3*n variance trouvée et démontrée theoriquement
return ( (a^2)/(3*n))
}
x4=2:20
y4=lapply(x4, Variance)
#courbe experimentale tracé en rouge ,courbe théorique tracé en bleu
plot(x4,y4,xlab="n",ylab="Var(M')",col="blue")
lines(x4,y4,col="blue")
points(x3,y3,col="red")
lines(x3,y3,col="red")
# on constate après observation du graphe que avec n qui devient grand la variance experimentale se rapproche de 0 ie M' devient constante et egal à E(M')=a (qui lui ne dépend pas de n ) . Et constate que la courbe obtenu se rapproche de la courbe de la variance calculée théoriquement .
#le meilleur estimateur de a parmi M et M' est M.Démonstration faite dans une image en dessous.
####################### Exercice2 Q2.3 ########################
#Je pense que c'est une bonne stratégie dans le sens ou le facteur 1.1 n'est pas trop grand, c'est à dire qu'il est proche de 1. En effet, si le facteur augmente plus beaucoup plus que 1 alors Bob gagnera mois souvent mais plus.De plus si le facteur est proche de 1 Bob gagnera souvent mais moins d'argent. Puisque la différence R(M)-M sera moins importante.
n=10
m=10000
A=runif(1)
q=1.1
EG<-function(q){#E(G)
M=replicate(m,max(runif(n)*A))
R=q*M
gain=0
for(i in 1:m){
if(R[i]<A){
gain=gain+(R[i]-M[i])
}
}
return (gain/m)
}
x=seq(from=0.1,to=5,by=0.1)
y=lapply(x,EG)
plot(x,y,xlab="q",ylab = "E(G)")
#le maximum est atteint pour q=1.1 et donc la strategie choisit par Bob est une bonne stratégie pour gagner de l'argent.
#Pour q<1 Bob ne perd rien et ne gagne pas d'argent .
#Pour cette exemple on a pour q>1.5 bob perd en moyenne le jeu fait avec Alice
####################### Exercice2 Q2.4 ########################
####################### Exercice2 Q2.5 ########################
set.seed(43)
n=2
m=10000
A=runif(1)
### Esperance
EG1<-function(alpha){#E(G)
M=replicate(m,max(runif(n)*A))
R=M^alpha
gain=0
for(i in 1:m){
if(R[i]<A){
gain=gain+(R[i]-M[i])
}
}
return (gain/m)
}
x=seq(from=0.1,to=5,by=0.1) # alpha qui va de 0.1 jusqu'Ã 5 avec un pas de 0.1
y=lapply(x,EG1)
n=10
EG2<-function(alpha){#E(G)
M=replicate(m,max(runif(n)*A))
R=M^alpha
gain=0
for(i in 1:m){
if(R[i]<A){
gain=gain+(R[i]-M[i])
}
}
return (gain/m)
}
x1=seq(from=0.1,to=5,by=0.1) # alpha qui va de 0.1 jusqu'Ã 5 avec un pas de 0.1
y1=lapply(x,EG2)
#courbe esperance pour n=10 tracé en rouge ,courbe esperance pour n=2 tracé en bleu
plot(x,y,xlab="alpha",ylab = "E(G)",col="blue")
lines(x,y,col="blue")
points(x1,y1,col="red")
lines(x1,y1,col="red")
##Pour n=2
#la meilleur valeur de alpha parmi {0.3,0.5,0.7} est 0.7 car parmi les 3 c'est pour ce alpha qu'on obtient la plus grande valeur de l'esperance.
#d'après la courbe on trouve un meilleur alpha qui vaut 0.6 (on peut dire qu'un meilleur alpha serait en fait entre 0.6 et 0.7)
##Pour n=10
#la meilleur valeur de alpha parmi {0.3,0.5,0.7} est 0.7 car parmi les 3 c'est pour ce alpha qu'on obtient la plus grande valeur de l'esperance.
#d'après la courbe on trouve un meilleur alpha qui est proche de 0.9 c'est-à -dire entre 0.9 et 1 (avec 1 exclu)
##BILAN
#la stratégie de Bob de choisir r(M)=M^alpha avec alpha<1 (et pas alpha >=1) est bonne car en moyenne il ne perd pas de parties contre Alice.
#De plus on peut aussi dire que sur n ,on remarque que plus n devient grand n>=10 .On a le meilleur alpha se rapproche de plus en plus de 1.
####################### Bonus Q3.6 ########################
set.seed(42)
A=runif(2)
m=10000
f<-function(A){#simulation de la stratégie de BOb qui consiste à repondre "oui" à Alice à chaque fois lors du jeu
pile_face=sample(0:1,1,replace=T)
if(pile_face==0){#on pose que 0 correspond à pile
return (max(A))
}else{#cas face
return (min(A))
}
}
Ex<-function(A){#calcul de l'esperance qui n'est pas necesairement pour trouver la probabilité de Bob de gagner lorsqu'il répond oui à toutes les parties.
M=replicate(m,f(A))
maxi=max(A)
return (mean(M>=maxi))
}
print(Ex(A))
## [1] 0.5001
# Si Bob répond oui à chaque fois alors la probabilité de gagner de BOB est de 1/2 qui est en faite la proba d'obtenir pile sur une pièce non biaisé .
Demonstration pour 1.1