https://www.jogossantacasa.pt/web/JogarTotoloto/
A simulação foi escrita em python e utiliza apenas a biblioteca random
import random as rnd
Temos que definir os números que correspondem às bolas 1 a 49
numeros = list(range(1, 50))
Temos também que definir o n. de apostas que queremos realizar e quantos numeros são selecionados em cada aposta
n_apostas = 4_000_000
n_por_aposta = 5
e um vector com todas as possibilidades para acumular um histograma de saídas:
histograma = [0] * (n_por_aposta + 1)
Para cada sorteio temos que definir dois conjuntos, o do sorteio e o do jogador. O sorteio só é realizado uma vez e só temos que sortear o número de apostas para obter as probabilidades.
O prémio é dado pela cardinalidade da interseção dos dois conjuntos. Para além desta situação há uma bola extra (uma estrela) que é um número entre 1 e 13. Esta bola afeta só o primeiro prémio (5 números corretos + estrela, apenas 5 estrelas corresponde ao 2ª prémio). Para além disso, caso acerte na estrela, o utilizador recebe sempre o valor do boletim (1 Euro).
A simulação não inclui a bola estrela. No entanto, abaixo é calculada a percentagem de apostas simuladas que teriam uma estrela e sem estrela, dividindo o valor da simulação por 13.
sorteio = set(rnd.sample(numeros, n_por_aposta))
n_apostas_faltam = n_apostas
while n_apostas_faltam > 0:
jogador = set(rnd.sample(numeros, n_por_aposta))
premio = len(jogador.intersection(sorteio))
histograma[premio] += 1
n_apostas_faltam -= 1
Por fim imprimimos o histograma para a consola em percentagens.
print("--- Resultados para {iter} apostas".format(iter=n_apostas))
for i, j in enumerate(histograma):
percentagem = j / n_apostas
print(
"{} - {:=10} - {:<12.6%} - estrela {:<12.6%} - sem {:<12.6%}".format(
i, j ,percentagem, percentagem / 13, 12 * percentagem / 13
)
)
A simulação pode ser copiada dos blocos python manualmente para um ficheiro. No entanto é possível correr a simulação online em https://www.online-python.com/iaeILv9kEV sem ter que instalar nada.
.oOo.