tle: “DM PS Idriss SAJIDE INFO4” |
tput: html_document |
Je pense que la valeur de E(M) sera différente de a et de plus en plus similaire avec un n grandissant
N=100
n=20
a=sample(x=1:N, size=1)
X = runif(n,0,a)
M=replicate(100000, max(runif(n,0,a)))
E=mean(M)
V=mean((M-mean(M))**2)
Eth=(n/(n+1))*a
Eth_c=(n/(n+1))*a + a*(1/(n+1))
Vth=(n/(n+2))*(a**2)-((n/(n+1))*a)**2
J’ai essayé de changer les valeurs de a et de n, mais ça n’a pas aboutit J’ai ensuite calculé P(M<=X) = produit des P(Xi<=X) avec i de 1 à n = (k/a)^n J’en ai déduit la fonction de densité = (n/a^n) * k^(n-1)
Ensuite l’espérance = (n/(n+1))*a Pour avoir E(M) = a, il faut [ M = (max Xi) + a*(1/(n+1)) ]
La variance V(M) = E(M²) - E(M)² (Formule du cours) = (n/n+2))(a²)-((n/(n+1))a)²
amax=100
n=20
a=sample(x=1:amax, size=1)
X = runif(n,0,a)
Mprim=replicate(1000, (2/n)*sum(runif(n,0,a)))
mean(Mprim)
## [1] 81.59733
mean((Mprim-mean(Mprim))**2)
## [1] 116.0773
E(M’) = a car la moyenne des Xi = a/2 Grave a la propriété de linéarité de l’espérance on a : E(Mprim) = E(2/n * sum(Xi)) = 2/n * sum(a/2) = 2/n * na/2 = a
N=1000
gains=sample(0,N,replace=TRUE)
for(i in 1:N) {
A=runif(1,0,1)
X=runif(n,0,A)
M=max(X)
gain=0
rM=1.1*M
if(rM <= A) {
gain=rM-M
}
gains[i]=gain
}
mean(gains)
## [1] 0.007875306
Bob a une bonne stratégie mais il ne va pas gagner beaucoup d’argent car son gain sera de 0.1M. Dans l’ordre du centime. (~0.015)
Je suppose que plus m sera grand plus la probabilité sera grande car on se rapproche de a
n = 3
N = 100
verif = function(n, a, m) {
A = sample(x=(0:10)/10, 1);
X = sample(x=(0:(10*A))/10, n, replace=TRUE)
M = max(X);
return (a == A && m == M)
}
T = matrix(nrow = 11, ncol = 11);
for(i in 0:10) {
for(j in 0:10){
T[i+1,j+1] = mean(replicate(N, verif(n, i/10, j/10)))
}
}
On a bien la moitié de la matrice à 0 car on ne peut pas avoir m>a, m étant le majorant des valeurs inférieurs à a.
Quand on lit la colonne m = 0.5, on a l’estimation de p(A=a, M=0.5) pour toutes les valeurs de a, on devrait donc proposer à bob 0.5.
La stratégie semble bonne car M^alpha sera toujours inférieur à 1
Bob a une chance sur deux de gagner. Donc son choix de répondre toujours oui devrait en effet ne rien lui faire perdre sur un nombre asses grand de partie
On prend un nombre a, que l’on choisit Alice nous donne le nombre b Notre comportement est le suivant : si b > a, on répond oui sinon on répond non Pour garantir plus de chance de gagner on veut qu’il y ait autant de chance que b soit supérieur à a, que b soit inférieur à a On va donc choisir a = 0.5.
Alice tire les nombre 0.4 et 0.6 On est donc sûr de gagner Si elle fait Pile, elle va nous donne b = 0.6 > 0.5 donc on répond oui Sinon elle nous donne b = 0.4 < 0.5 donc on répond non
n=100
a = 0.5
nb1 = runif(n,0,1)
nb2 = runif(n,0,1)
b1 = sample(0, n, replace = TRUE)
b2 = sample(0, n, replace = TRUE)
for(i in seq(1, n)){
b1[i] = max(nb1[i],nb2[i])
b2[i] = min(nb1[i],nb2[i])
}
dé = sample(c(0, 1), n, replace = TRUE)
res = sample(0, n, replace = TRUE)
for(i in seq(1, n)) {
if ((dé[i] == 1 && b1[i] > a) || dé[i] == 0 && b2[i] <= a) {
res[i] <- 1
}
}
mean(res)
## [1] 0.78
On génère deux fois n=100 nombre aléatoire pour simuler 100 parties du jeu On les trie dans deux tableaux b1 et b2 tels que b1[i] >= b2[i] On simule ensuite un lancé de dé n fois également Dans un tableau résultat on indique si on a eu juste ou pas, en simulant le fait que l’on dise oui quand Alice nous dit un nombre supérieur à a=0.5
On devrait donc gagner environ 3 fois sur 4