O paradoxo do aniversário é um resultado surpreendente na
teoria das probabilidades. Este paradoxo garante que dado um grupo de 23 pessoas (ou
mais) pessoas escolhidas aleatoriamente, a chance de que duas pessoas terão a
mesma data de aniversário é de mais de 50%. Em uma festa com 30 pessoas, a probabilidade
de haver duas pessoas com o mesmo aniversário é maior que 70%. Vamos calcular
estes valores!
Primeiramente, vamos calcular a número de pessoas de um grupo para que duas pessoas tenham a mesma data de aniversário com probabilidade acima de q.
Para isso, calcularemos a probabilidade de todas pessoas tenham data de aniversário diferente. Note que o evento de duas pessoas tenham a mesma da aniversário e todas as pessoas tenham data de aniversário diferente são complementares.
p(duas pessoas com o mesmo aniversario) = 1 - p(todas pessoas com aniversários diferente)
A probabilidade de duas pessoas terem aniversários diferentes é
$p = (\frac{365}{365})( \frac{364}{365}) = 0,997$
A probabilidade de três pesoas terem aniversários diferentes é:
$p = (\frac{365}{365}) (\frac{364}{365}) (\frac{363}{365})= 0,991$
A probabilidade de n pessoas terem aniversários diferentes é:
$p = (\frac{365}{365}) (\frac{365-1}{365}) (\frac{363-2}{365}) \ldots (\frac{365-(n-1)}{365})$
Para descobrir número de pessoas de um grupo para que duas pessoas tenham a mesma data de aniversário com probabilidade acima de q. Basta calcular iterativamente p até que q < (1-p), ou seja, até a probabilidade do complemento de p supere o nosso limite estabelecido.
$n(d,q) = $ número de pessoas em um grupo para que tenha duas pessoas com a mesma data de aniversário com probabilidade q considerando o ano com d dias.
int n(int d, double q){ double p = 1.0; int s = 1; while( q > (1.0-p) ){ p = p*( (double)(d-s)/d); s++; } return s; }
Podemos construir a seguinte tabela:
p
|
n(365,p)
|
10
|
10
|
20
|
14
|
30
|
17
|
40
|
20
|
50
|
23
|
60
|
27
|
70
|
30
|
80
|
35
|
90
|
41
|
100
|
167
|
Observe que o algoritmo mostra que em um grupo com 167 pessoas, duas pessoas terão a mesma data aniversário com probabilidade de 100%. Para que desse o resultado de 365 seria necessário um variável double com uma grande precisão.
A operação contrária é mais fácil:
$p(n,d)$ = probabilidade de duas pessoas terem o mesmo aniversário dado um grupo de n pessoas considerandoo ano com d dias.
double p(int n, int d){ double r = 1.0; int s = 1; while(s<n){ r = r*( (double)(d-s)/d); s++; } return 1.0 - r; }
Imagine que você monte uma playlist com 500 músicas, qual é a probabilidade de que você escute 100 músicas e ocorra uma música repetida?
p(100,500) = 0.9999758457
Imagine que você monte uma playlist com 500 músicas, quantas músicas você precisa escutar para que você escute uma música repetida com probabilidade de 50%?
n(500,0.5) = 27
Um comentário:
E o codigo completo?
Postar um comentário