Vous êtes sur la page 1sur 4

ECT 2019-2020

TP 7 : Simulation de lois de probabilités

I. La fonction rand()
◮ Évaluer plusieurs fois dans la console rand(). Que fait la fonction rand() ?

◮ Évaluer successivement dans la console rand(1,3), rand(3,1), rand(2,4). Que fait la fonction
rand(k,l) où k et l sont deux entiers.

ESCP Europe 2018


On suppose que l’on dispose d’un stock illimité de boules rouges et de boules blanches indiscernables au
toucher. Une urne contient initialement une boule rouge et une boule blanche indiscernable au toucher.

On effectue dans cette urne une succession d’expériences aléatoires selon le protocole suivant : on ex-
trait une boule de l’urne et après chaque tirage, la boule tirée est remise dans l’urne et on ajoute une
boule de la même couleur que la boule tirée.

Pour tout entier n > 1, on note Xn la variable aléatoire égale au nombre de boules rouges contenues
dans l’urne à l’issue de la n-ième expérience, c’est-à-dire après le tirage (avec remise) d’une boule et
l’ajout d’une boule supplémentaire.
Compléter le programme SCILAB suivant afin qu’il simule une réalisation de la variable aléatoire Xn
où l’entier n est entré au clavier.

1 n=input("donner une valeur à n : ")


2 r=1; b=1
3 for k=1:n
4 if rand()<r/(r+b) then ........
5 else ........
6 end
7 end
8 x=........
9 disp(x)

1
ECT 2019-2020

II. La fonction grand(1,n,"uin",1,k)


◮ Évaluer plusieurs fois dans la console grand(1,1,"uin",1,10).
Que fait la fonction grand(1,1,"uin",1,k) ?

◮ Évaluer successivement dans la console grand(1,3,"uin",1,5), grand(1,6,"uin",1,5) ;


grand(1,20,"uin",1,5). Que fait la fonction grand(1,n,"uin",1,k) où k et n sont deux entiers.

ECRICOME 2018
On considère une urne U contenant deux boules blanches et une boule noire indiscernables au toucher,
ainsi qu’une urne V contenant une boule blanche et trois boules noires, elles aussi indiscernables au
toucher. On effectue une suite de tirages d’une boule dans ces urnes en procédant comme suit :
• le premier tirage a lieu dans l’urne U ;
• tous les tirages s’effectuent avec remise de la boule piochée dans l’urne dont elle provient ;
• si l’on pioche une boule blanche lors d’un tirage, le tirage suivant a lieu dans l’autre urne ;
• si l’on pioche une boule noire lors d’un tirage, le tirage suivant a lieu dans la même urne.
Pour tout entier naturel non nul n, on note Xn la variable aléatoire égale au nombre de boules blanches
piochées au cours des n premiers tirages.
On rappelle qu’en SCILAB, l’instruction grand(1,1,"uin",1,k) renvoie un entier aléatoire compris
entre 1 et k. Recopier et compléter les lignes à pointillés du script SCILAB ci-dessousn afin qu’il simule
la variable aléatoire X2 :

1 function X2=simulation()
2 tirage1=grand(1,1,"uin",1,3)
3 if tirage1<3 then
4 res1=1
5 tirage2=grand(1,1,"uin",1,4)
6 if tirage2==1 then res2=1
7 else res2=0
8 end
9 else
10 res1=0
11 tirage2=......................
12 if tirage2<3 then res2=......................
13 else res2=......................
14 end
15 end
16 X2=res1+res2
17 endfunction

2
ECT 2019-2020

ECRICOME 2017

L’urne U contient 1 boule noire et 3 boules blanches indiscernables au toucher. L’urne V contient 2
boules noires et 2 boules blanches indiscernables au toucher. On lance une pièce équilibrée. Si elle
retombe sur le côté Pile, on tire deux boules successivement et avec remise dans U , et si on obtient
Face, on tire deux boules successivement et avec remise dans V. On note T la variable aléatoire égale
au nombre de fois où l’on a pioché une boule noire.

On rappelle qu’en langage SCILAB, l’instruction grand(1,1,"uin",n1,n2) renvoie un entier au hasard


et uniformément compris entre n1 et n2. Compléter, sur votre copie, le programme SCILAB suivant,
afin qu’il affiche une simulation de la variable aléatoire T .

1 T=........
2 if grand(1,1,"uin",1,2)==1 then
3 for k=1:2
4 if grand(1,1,"uin",1,4)<2 then
5 T=T+1
6 end
7 end
8 else
9 ........
10 ........
11 ........
12 ........
13 ........
14 end
15 disp(T,"Une simulation de T donne :")

ESCP Europe 2016


Une puce se déplace sur un axe gradué. À l’instant 0, la puce se trouve sur le point d’abscisse 0. À
partir de l’instant 0, la puce effectue à chaque instant, un saut vers la droite selon le protocole suivant :
• elle effectue un saut d’une unité vers la droite avec la probabilité 12 ;
• elle effectue un saut de deux unités vers la droite avec la probabilité 14 ;
• elle effectue un saut de trois unités vers la droite avec la probabilité 14 .
Pour tout entier n > 1, on note An l’abscisse du point occupé par la puce à l’issue de son n-ième saut.

On rappelle qu’en SCILAB, l’instruction grand(1,1,"uin",1,4) simule une variable aléatoire suivant
la loi discrète uniforme sur J1; 4K. Compléter le programme suivant afin qu’il simule les 100 premiers
déplacements de la puce.

1 A=zeros(1,100)
2 for k=1:100
3 t=grand(1,1,’uin’,1,4)
4 if t<=...... then A(k)=1
5 end
6 if t=...... then A(k)=2
7 end
8 if t=...... then A(k)=3
9 end
10 end
11 disp(A)

3
ECT 2019-2020

III. La fonction grand(1,n,"bin",1,p)


◮ La fonction grand(1,k,"bin",1,p) simule k variables aléatoires réelles suivant la loi B(p) (loi de
Bernoulli de paramètre p).
◮ La fonction grand(1,k,"bin",n,p) simule k variables aléatoires réelles suivant la loi B(n, p) (loi
binomiale de paramètres n et p).
ESC 2018
Une urne contient une boule rouge et deux boules blanches. Un joueur effectue n tirages successifs
d’une boule dans cette urne. Il remet la boule obtenue dans l’urne après chaque tirage.

À partie du deuxième tirage, le joueur reçoit un point à chaque fois que la couleur obtenue à un ti-
rage n’est pas celle qui a été obtenue au tirage précédent. Dans le cas contraire, il ne reçoit aucun point.

Ainsi, si trois tirages successifs amènent : blanc, rouge, rouge, le joueur marque un point au deuxième
tirage et aucun point au troisième tirage.
On note G le nombre total de points marqués lors de ces n tirages.
1. Expliquer avec précision pourquoi l’instruction

X=grand(1,n,"bin",1,1/3)

permet de simuler n tirages dans l’urne.


2. Quelle instruction faut-il ajouter à la ligne 6 pour que le programme suivant simule n tirages
successifs dans l’urne (l’entier n > 2 étant donné par l’utilisateur) et qu’il affiche le nombre de
points marqués par le joueur ? On justifiera la réponse.

1 n=input("n?")
2 X=grand(1,n,"bin",1,1/3)
3 G=0
4 for i=2:n
5 if X(i)<>X(i-1) then
6 ........
7 end
8 end
9 disp(G)

Vous aimerez peut-être aussi