{% comment %}Custom stylesheet, it must be in the same directory as the html file {% endcomment %} {% comment %}Loading mathjax macro {% endcomment %} {% comment %}Load mathjax {% endcomment %} {% comment %}MathJax configuration {% endcomment %} {% comment %}End of mathjax configuration {% endcomment %}
Carregando os pacotes que fazem gráficos e que fazem gráficos e contas estatísticas:
using Plots, Statistics
Número de sorteios, não vamos mudar isto mais:
nsorteios = 1000;
Primeiro sorteio: 1.000 moedas serão lançadas.
nmoedas = 1000;
ncaras = zeros(Int,nsorteios)
for i in 1:nsorteios
sorteio = rand(Bool,nmoedas)
ncaras[i] = count(sorteio)
end
Vamos dividir o número de caras de cada sorteio pelo número total de moedas. O código abaixo divide cada elemento do vetor ncaras
por nmoedas
:
ncaras = ncaras / nmoedas;
Finalmente, vamos fazer o histograma correspondente:
histogram(ncaras,norm=true,label="$nmoedas",alpha=0.7)
Vamos repetir o mesmo procedimento, mas agora com 10.0000 moedas:
nmoedas = 10000
for i in 1:nsorteios
sorteio = rand(Bool,nmoedas)
ncaras[i] = count(sorteio)
end
ncaras = ncaras / nmoedas
histogram!(ncaras,norm=true,label="$nmoedas",alpha=0.7)
Vamos repetir o mesmo procedimento, mas agora com 100.0000 moedas:
nmoedas = 100000
for i in 1:nsorteios
sorteio = rand(Bool,nmoedas)
ncaras[i] = count(sorteio)
end
ncaras = ncaras / nmoedas
histogram!(ncaras,norm=true,label="$nmoedas",alpha=0.7)
E, por fim, com 1.000.000 de moedas:
nmoedas = 1000000
for i in 1:nsorteios
sorteio = rand(Bool,nmoedas)
ncaras[i] = count(sorteio)
end
ncaras = ncaras / nmoedas
histogram!(ncaras,norm=true,label="$nmoedas",alpha=0.7)
Se, em lugar de aumentar o número de moedas em cada sorteio, aumetamos o número de sorteios, temos também a convergênciado resultado, mas em outro sentido. Vamos fazer o sorteio de 100 moedas sempre:
nmoedas=100;
E, neste caso, vamos variar o número de sorteios. Começando por 100:
nsorteios=100;
Cada sorteio consiste em gerar nmoedas
valores aleatórios de Verdadeiro ou Falso, e o número de caras
, isto é, o número de Verdadeiros, é salvo no vetor ncaras
para cada sorteio:
ncaras = zeros(Int,nsorteios)
for i in 1:nsorteios
sorteio = rand(Bool,nmoedas)
ncaras[i] = count(sorteio)
end
Por fim, fazemos o histograma:
histogram(ncaras,norm=true,label="$nsorteios",alpha=0.7)
Agora, vamos fazer a mesma coisa, mas com 1.000 sorteios:
nsorteios=1000;
ncaras = zeros(Int,nsorteios)
for i in 1:nsorteios
sorteio = rand(Bool,nmoedas)
ncaras[i] = count(sorteio)
end
histogram!(ncaras,norm=true,label="$nsorteios",alpha=0.7)
E, por fim, coim 10.000 sorteios:
nsorteios=10000;
ncaras = zeros(Int,nsorteios)
for i in 1:nsorteios
sorteio = rand(Bool,nmoedas)
ncaras[i] = count(sorteio)
end
histogram!(ncaras,norm=true,label="$nsorteios",alpha=0.7)
Note que a distribuição converge. Ou seja, o resultado que estamos obtendo é uma característica do sorteio de 100 moedas. Em particular, podemos calcular a media e o desvio padrão desta distribuição:
mean(ncaras)
std(ncaras)
Estas propriedades são intrínsecas deste sorteio de 100 moedas, e convergem para valores precisos se o número de sorteios é muito grande.