Bonjour
Pour résoudre un petit problème de proba j'ai fait une simulation MATLAB.
A mon avis le code n'est pas optimale puisqu'il remplis toute la mémoire sur mon PC en simulant tout d'un coup, mais c'est pas grave parce que ma question concerne plutôt la partie proba: Est-ce que l'algo que j'ai fait simule bien ce que je veux simuler ?
Donc voila la question :
On a un sac remplit de 500 000 000 billes, tous de couleur bleu à l'exception de 320 000 qui sont vertes. En un an on en prend 27000 de manière aléatoire, une par une pour les peindre en rouge et en les remettants à chaque fois. Quelle est la probabilité d'avoir peint une même bille verte 2 fois en rouge ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 SIM = 1000000 ; BT = 500000000 ; V = 320000 ; R = 27000 ; W = V*(R/BT) ; % Nombre total de fois qu'on paint une bille en rouge par an. X = SIM * W ; % Idem mais au bout de n simulations. Y = SIM * V ; % Nombre total de billes vertes sur n simulations. TIRAGES = 0:X ; NB_0=V ; NB_1=0 ; NB_2=0 ; NB_9=0 ; % NB_0 = Le nombre de billes ayant été tirées 0 fois. Idem avec 1 et 2. NB_9 c'est le reste. for i = 1 : 1 : X TIRAGES(i) = round((Y-1)*rand(1)+1) ; % Les +1 et -1 servent juste à éviter les indices = à 0 qui font buger MATLAB. end TIRAGES = sort(TIRAGES) ; for i = 1 : 1 : X for k = 0 : 1 : X if(TIRAGES(i+k) ~= TIRAGES(i+k+1)) NB_0 = NB_0 - 1 ; break else i = i + 1 ; end end if (k==0) NB_1 = NB_1 + 1 ; elseif (k==1) NB_2 = NB_2 + 1 ; else NB_9 = NB_9 + 1 ; end end format long NB_0 = NB_0/SIM NB_1 = NB_1/SIM NB_2 = NB_2/SIM NB_9 = NB_9/SIM
Partager