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