suivant: La correction avec l'aide
monter: Exercice 3
précédent: L'énoncé
Table des matières
1/ On suppose que les billes rouges sont numérotées de 0 à 9 et que les
vertes sont numérotées de 10 à 12.
On simule un choix de la question 1/ avec choix1(), la loi de X en
faisant "beaucoup de tirages" avec loiX(n)
où n représente un grand nombre de tirages et l'espérance de
X avec EX(n) où n représente aussi un grand nombre de tirages.
On peut écrire pour simuler le choix sans remise de 3 billes parmi 13
(on numérote les billes de 0 à 12 et on recommence si on trouve une bille
déjà tirée) :
choix11():={
local b1,b2,b3;
b1:=rand(13);
b2:=rand(13);
while (b1==b2) {b2:=rand(13);}
b3:=rand(13);
while (b1==b3 || b2==b3) {b3:=rand(13);}
return sort([b1,b2,b3]);
};
ou encore si on supprime les numéros tirés au fur et à mesure :
choix12():={
local b,j,B,R,n;
B:=makelist(id,0,12);
R:=[];
n:=13;
for (j:=0;j<3;j++) {
b:=rand(n);
R:=append(R,B[b])
B:=suppress(B,b);
n:=n-1;
}
return sort(R);
}
ou encore si on ne veut pas mettre un numéro aux billes :
choix13():={
local b,j,B,R,n;
//B:=concat(makelist(x->"R",0,9),makelist(x->"V",0,2));
B:=makelist(x->ifte(x<10,"R","V"),0,12);
R:=[];
n:=13;
for (j:=0;j<3;j++) {
b:=rand(n);
R:=append(R,B[b])
B:=suppress(B,b);
n:=n-1;
}
return R;
}
On tape :
choix11() ou choix12()
On obtient par exemple :
[5,8,11]
On tape :
choix13()
On obtient par exemple :
[R,R,V]
ce qui correspond à 2 billes rouges (numéros 5 et 8) et 1 bille verte
(numéro 11).
Puis on définit la loi de X en utilisant choix11() ou
choix12():
loiX(n):={
local ch,lX,j;
lX:=makelist(0,0,3);
for (j:=0;j<n;j++) {
ch:=count_inf(10,choix11());
lX[ch]:=lX[ch]+1;};
return lX/n;
};
EX(n):=sum(loiX(n)[k]*k,k,0,3);
On tape :
loiX(1000)
On obtient par exemple :
[1/500,107/1000,23/50,431/1000]=[0.002,0.107,0.460,0.431]
On tape :
EX(1000)
On obtient par exemple :
288/125=2.304
Ou définit la loi de X en utilisant choix13():
loi13X(n):={
local ch,lX,j;
lX:=makelist(0,0,3);
for (j:=0;j<n;j++) {
ch:=count_eq("R",choix13());
lX[ch]:=lX[ch]+1;};
return lX/n;
};
E13X(n):=sum(loi13X(n)[k]*k,k,0,3);
On tape :
loi13X(1000)
On obtient par exemple :
[7/1000,99/1000,489/1000,81/200]=[0.007,0.099,0.489,0.405]
On tape :
E13X(1000)
On obtient par exemple :
2369/1000=2.369
2/ On suppose que la boite cubique a comme numéro 1 et que la boite
cylindrique a comme numéro 2.
On suppose que dans la boite cubique, les billes rouges sont numérotées
de 0 à 9 et que les vertes sont numérotées de 10 à 12 et que dans la
boite cylindrique, les billes rouges sont numérotées
de 0 à 2 et que les vertes sont numérotées de 3 à 6.
On simule un choix de la question 2/ avec choix2().
On simule les résultats obtenus lorsque l'on effectue n fois le deuxième
jeu avec choix3(n).
On simule la probabilité d'obtenir une bille rouge avec le deuxième
jeu avec probR(n) en prenant une grande valeur de n.
Attention
Lorsque l''on veut exploiter les résultats obtenus par choix2() ou par
choix3(n) il faut préserver le résultat obtenu dans une variable car
les valeurs obtenues par ces fonctions ne sont pas toujours les mêmes!!!
Par exemple :
L:=choix3(1000); ou choix:=choix2()
car L[0]+L[2]!=choix3(1000)[0]+choix3(1000)[1] ou
choix[0]+choix[1]!=choix2()[0]+choix3()[1]
choix2():={
local c,b,nr1,nr2,nv1,nv2;
c:=rand(2)+1;
nr1:=0;
nr2:=0;
nv1:=0;
nv2:=0;
if (c==1){
b:=rand(13);
if (b<10) {
nr1:=nr1+1;
} else {
nv1:=nv1+1;
}
} else {
b:=rand(7);
if (b<3) {
nr2:=nr2+1;
} else {
nv2:=nv2+1;
}
}
return [nr1,nv1,nr2,nv2];
};
choix3(n):={
local rep,k;
rep:=[0,0,0,0];
for (k:=0;k<n;k++) {
rep:=choix2()+rep;
};
return rep;
};
probR(n):={
local L;
L:=choix3(n);
return (L[0]+L[2])/n;
};
probC1siR(n):={
local nrc1,nr,choix,k;
nrc1:=0;
nr:=0
for (k:=0;k<n;k++) {
choix:=choix2();
if (choix[0]+choix[2]==1) {nr:=nr+1;
if (choix[0]==1) nrc1:=nrc1+1;
}
}
return [nr,nrc1/nr];
};
On tape :
choix2()
On obtient par exemple :
[0,1,0,0]
ce qui veut dire que l'enfant a choisi d'abord la boite cubique, puis une bille
verte dans cette boite.
On tape :
choix3(1000)
On obtient par exemple :
[368,109,218,305]
ce qui veut dire que l'enfant a choisi d'abord 368+109=477 fois la boite
cubique, en prenant ensuite 368 fois une bille rouge et 109 fois une bille
verte dans cette boite et 218+305=523 fois la boite
cylindrique, en prenant ensuite 218 fois une bille rouge et 305 fois une bille
verte dans cette boite.
On tape :
probR(1000)
On obtient par exemple :
609/1000=0.609
ce qui veut dire que sur 1000 tirages, l'enfant a obtenu 609 fois une bille
rouge.
On tape :
probC1siR(1000)
On obtient par exemple :
[593,366/593]
[593.0,0.6172
ce qui veut dire que sur 1000 tirages, la bille rouge a été obtebue 593
fois et en provenant 366 fois de la boite cubique.
On tape :
probC1siR(1000)
On obtient par exemple :
[624,131/208]
[[624.0,0.6298]
ce qui veut dire que sur 1000 tirages, la bille rouge a été obtebue 624
fois et en provenant 393 fois de la boite cubique.
3/ Pour simuler pn, on effectue m fois n tirages avec m grand.
pn(n,m):={
local L,rep,k;
rep:=0;
for (k:=0;k<m;k++) {
L:=choix3(n);
if ((L[0]+L[2])>0) {
rep:=rep+1;}
}
return rep/m;
}
On tape si l'enfant fait 5 tirages de suite au deuxième jeu :
pn(5,1000)
On obtient par exemple :
987/1000
On tape si l'enfant fait 6 tirages de suite au deuxième jeu :
pn(6,1000)
On obtient par exemple :
997/1000
suivant: La correction avec l'aide
monter: Exercice 3
précédent: L'énoncé
Table des matières
Documentation de giac écrite par Renée De Graeve