Kalandozás a python programozás földjén.

Python, ahogy én ...

Érettségi 2005 (Lottó)

2019. május 21. - d3c0d3r

Feladat:

Magyarországon 1957 óta lehet ötös lottót játszani. A játék lényege a következő: a lottószelvényeken 90 szám közül 5 számot kell a fogadónak megjelölnie. Ha ezek közül 2 vagy annál több megegyezik a kisorsolt számokkal, akkor nyer. Az évek során egyre többen hódoltak ennek a szerencsejátéknak és a nyeremények is egyre nőttek.

Feladat leírás: itt, forrás állományok: itt.

Megoldás:

def prim(a):
    return all(a % i for i in range(2, int(a ** 0.5) + 1))

huzasok = {}
with open('lottosz.dat') as f:
    for i, l in enumerate(f):
        huzasok[i + 1] = list(map(int, l.split()))

szamok = [v[i] for v in huzasok.values() for i in range(5)]

het_52 = sorted(list(map(int, input('52. hét számai (szóközzel elválasztva): ').split())))
print(het_52)

print(huzasok[int(input('Melyik hét számaira kiváncsi: '))])

print('Van ki nem húzott szám!') if len(set(szamok)) < 90 else print('Nincs ki nem húzott szám!')

print(f'Páratlan számot {len([szam for szam in szamok if szam % 2 != 0])}-szor húztak ki.')

huzasok[52] = het_52
szamok += het_52

with open('lotto52.ki', 'w') as f:
    for het in huzasok.values():
        f.write(' '.join(map(str, het)) + '\n')

szam_stat = [szamok.count(i) for i in range(1, 91)]
print('\nSzámok gyakorisága:')
for i in range(1, 91):
    print(szam_stat[i - 1], end=' ')
    if i % 15 == 0:
        print('\n')

print('Ki nem húzott prímszámok: ', set(i for i in range(2, 91) if prim(i)) - set(szamok))

A bejegyzés trackback címe:

https://python-kalandok.blog.hu/api/trackback/id/tr7614841676

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása