Professional Documents
Culture Documents
A Primitiva
A Primitiva
A Lotería Primitiva é un xogo de azar regulado por Loterías e Apostas do Estado (LAE) que consiste en
elixir 6 números diferentes entre 1 e 49, co obxectivo de acertar a combinación gañadora no sorteo corres-
pondente.
O xogo está formado por 7 bólas, das cales 6 extráense dun bombo con 49 números (modalidade co-
munmente coñecida como 6/49) e 1 extráese doutro bombo con 10 bólas (con números que van desde 0 a
9) e correspondente co «reintegro». Tamén se extrae unha bóla extra como número complementario.
No caso de que nunha mesma categoría aparecesen varios acertantes, repartiríanse o premio a
partes iguais. En canto ao número complementario, o apostante non pode marcar ningún número
complementario, senón que ese número contarase dentro dos seis que elixa como a súa combinación, e só
no caso de que os outros cinco correspondan á combinación principal; é dicir, o complementario só
utilízase na 2ª Categoría de premios.
PROGRAMACIÓN 1º BAC
PRÁCTICA A PRIMITIVA
1. O primeiro que imos facer é importar a biblioteca random, crear unha variable co número de
sorteos, outra co prezo da aposta, e dúas listas unha cos números do sorteo e outra cos do
reintegro.
import random
numero_sorteos=100000
premios_medios={'3':8,'4':67,'5':2228, '5+1':43182,'6':e1727262,'R':1}
global numero_sorteos
numero_sorteos=novo_numero
3. Deseñar unha función denominada ´sorteo que xere unha lista aleatoria de de 8 números, 6 +
complementario + reintegro, simulando as bolas que se sacan nun sorteo.
''def sorteo():
' Método que escolle 8 números (6 + complementario + Reintegro) nun sorteo Devolve lista con 8
números [1, 31, 29, 43, 15, 40, 34, 2]'''
4. Deseñar unha función denominada combinación que simule a nosa aposta. Crea unha lista
aleatoria de 7 números. Son os 6 do sorteo e o sétimo o reintegro.
def saca_combinacion():
''' Método que comproba cantos acertos tivemos nun sorteo [24, 43, 33, 27, 19, 46, 3] e [1, 31, 29,
43, 15, 40, 34, 2] debe devolver 1'''
PROGRAMACIÓN 1º BAC
PRÁCTICA A PRIMITIVA
''' Método que comproba se acertamos o complementario nun sorteo [24, 43, 33, 27, 19, 46, 3] e [1,
31, 29, 43, 15, 40, 34, 2] debe devolver 0'''
''' Método que comproba se acertamos o complementario nun sorteo [24, 43, 33, 27, 19, 46, 3] e [1,
31, 29, 43, 15, 40, 34, 3] debe devolver 1'''
[['0', '0'], ['1', '0'], ['0', '1'], ['2', '1'], ['4', '0'], ['5+1', '0']]
def fai_multiples_sorteos(numeros_xogados):
''' Método que realiza multiples sorteos é devolve lista cos acertos . Recibe a lista de parámetros e de
volve unha lista de listas cos acertos de cada un dos sorteos. [['0', '0'], ['1', '0'], ['0', '1'], ['2', '0'], ['4',
'0'], ['5+1', '0']]'''
9. Agora imos crear a un dicionario cos posibles acertos a 0, creando unha función denominada
crea_dicionario(). Devolve o dicionario baleiro:
def crea_dicionario():
dic={}
for i in range(6):
dic[str(i)]=0
dic['5+1']=0
dic['6']=0
dic['R']=0
return dic
PROGRAMACIÓN 1º BAC
PRÁCTICA A PRIMITIVA
10. Deseñar unha función denominada analiza_datos(lista_sorteos), que colla unha lista cos resultados
do sorteo, e que devolva un dicionario cos resultados globais do sorteo.
def analiza_datos(lista_sorteos):
''' Método que analiza os datos de unha sorteos. Recibe unha lista cos sorteos e devolve o dicionario
cos datos'''
analiza_datos([['5+1', '0'], ['0', '0'], ['1', '1'], ['3', '0'], ['0', '0'], ['1', '1']])
11. Deseñar unha función que se denomine premios_gasto(dic), que reciba como parámetro un dicio-
nario (o da función anterior)c os premios recibidos, e devolva unha tupla co diñeiro gañado e o
diñeiro gastado.
def premios_gasto(dic):
premios_gasto({'0': 429, '1': 426, '2': 131, '3': 14, '4': 0, '5': 0, '5+1': 0, '6': 0, 'R': 107})
(219 1000)
''' Método que analiza cantos sorteros necesito para sacar n acertos. Recibe como parámetros os nume-
ros_xogados, os acertos que queremos e un número máximo de intentos. Devolve os intentos ou a mensa-
xe obxectivo non conseguido'''
PROGRAMACIÓN 1º BAC
PRÁCTICA A PRIMITIVA
def main():
'''Programa principal'''
numeros_xogados=saca_combinacion()
while True:
os.system('cls')
print(60*'*')
print(60*'*')
os.system('cls')
if op=='1':
callable(novo_numero_sorteos)
elif op=='2':
elif op=='3':
numeros_xogados=saca_combinacion()
elif op=='4':
elif op=='5':
print()
print(analiza_datos(fai_multiples_sorteos(numeros_xogados)))
elif op=='6':
PROGRAMACIÓN 1º BAC
PRÁCTICA A PRIMITIVA
print()
elif op=='7':
re=premios_gasto(analiza_datos(fai_multiples_sorteos(numeros_xogados)))
else:
break
print()
PROGRAMACIÓN 1º BAC