Skip to content

Instantly share code, notes, and snippets.

@saulodias
Last active December 22, 2023 11:55
Show Gist options
  • Save saulodias/f3dc918d48a15e459aeb75c04cb065f4 to your computer and use it in GitHub Desktop.
Save saulodias/f3dc918d48a15e459aeb75c04cb065f4 to your computer and use it in GitHub Desktop.
O script Python calcula a probabilidade de acertar 6 números em um conjunto de 60, usando uma estrutura de preços para diferentes escolhas de dezenas. Os resultados são exibidos em gráficos de probabilidade e custo.
import matplotlib.pyplot as plt
import math
def probabilidade(numeros_escolhidos):
"""
Calcula a probabilidade de acertar exatamente 6 números em um conjunto maior.
Parameters:
numeros_escolhidos (int): Número de elementos escolhidos.
Returns:
float: Probabilidade de acertar exatamente 6 números.
"""
numero_combinacoes_escolhidos = math.comb(numeros_escolhidos, 6)
numero_combinacoes_total = math.comb(60, 6)
probabilidade = numero_combinacoes_escolhidos / numero_combinacoes_total
return probabilidade
def calcular_custo(probabilidade, preco_por_dezenas):
"""
Calcula o custo da probabilidade total.
Parameters:
probabilidade (float): Probabilidade de acertar exatamente 6 números.
preco_por_dezenas (float): Preço associado ao número de dezenas escolhidas.
Returns:
float: custo da probabilidade total
"""
custo_percentual = preco_por_dezenas / probabilidade
return custo_percentual
preco_por_dezenas = {
6: 5,
7: 35,
8: 140,
9: 420,
10: 1050,
11: 2310,
12: 4620,
13: 8580,
14: 15015,
15: 25025,
16: 40040,
17: 61880,
18: 92820,
19: 135660,
20: 193800
}
# Calcular probabilidade e custo para cada número de dezenas
probabilidades = [probabilidade(k) for k in preco_por_dezenas.keys()]
custos = [calcular_custo(p, preco_por_dezenas[k]) for p, k in zip(probabilidades, preco_por_dezenas.keys())]
# Plotar gráfico de probabilidade
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.bar(preco_por_dezenas.keys(), probabilidades, color='green')
plt.title('Probabilidade por Número de Dezenas')
plt.xlabel('Número de Dezenas')
plt.ylabel('Probabilidade')
# Plotar gráfico de custo
plt.subplot(1, 2, 2)
plt.bar(preco_por_dezenas.keys(), custos, color='blue')
plt.title('Custo da Probabilidade por Número de Dezenas')
plt.xlabel('Número de Dezenas')
plt.ylabel('Custo')
plt.tight_layout()
plt.show()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment