2026. május 24., vasárnap

Skandináv lottó elemző

import requests
from collections import defaultdict
from datetime import datetime

# =========================
# Skandináv lottó elemző
# =========================
#
# Feladat:
# 1. Letölti az eddigi Skandináv lottó húzásokat
# 2. Kizárja az utolsó sorsolás 14 számát
# 3. Megnézi a többi szám közül melyiket húzták ki a legrégebben
# 4. Kiválaszt 7 számot
#
# Megjegyzés:
# A program az Szerencsejáték Zrt. publikus API-ját használja.
#

URL = "https://bet.szerencsejatek.hu/cmsfiles/skandinav.csv"

# CSV letöltése
response = requests.get(URL)

if response.status_code != 200:
    print("Nem sikerült letölteni az adatokat.")
    exit()

# Sorok feldolgozása
lines = response.text.strip().split("\n")

# Fejléc eltávolítása
header = lines[0]
data_lines = lines[1:]

draws = []

for line in data_lines:
    parts = line.split(";")

    try:
        year = parts[0]
        week = parts[1]

        # A 14 kihúzott szám
        numbers = list(map(int, parts[11:25]))

        draws.append({
            "year": int(year),
            "week": int(week),
            "numbers": numbers
        })

    except:
        continue

# Legfrissebb húzás
latest_draw = draws[-1]
latest_numbers = set(latest_draw["numbers"])

print("Utolsó húzás számai:")
print(sorted(latest_numbers))
print()

# Utolsó előfordulás keresése minden számra
last_seen = {}

# Visszafelé haladunk az időben
for index in range(len(draws)-1, -1, -1):
    draw = draws[index]

    for number in draw["numbers"]:
        if number not in last_seen:
            last_seen[number] = len(draws) - index

# Skandináv lottó számok: 1-35
all_numbers = set(range(1, 36))

# Kizárjuk az utolsó húzás számait
remaining_numbers = all_numbers - latest_numbers

# Rangsorolás:
# minél nagyobb a "len(draws)-index",
# annál régebben volt húzva
ranking = []

for number in remaining_numbers:
    age = last_seen.get(number, 999999)
    ranking.append((number, age))

# Régebben húzott számok előre
ranking.sort(key=lambda x: x[1], reverse=True)

# 7 szám kiválasztása
selected = ranking[:7]

selected_numbers = sorted([x[0] for x in selected])

print("Ajánlott 7 szám:")
print(selected_numbers)

print("\nRészletek:")
for number, age in selected:
    print(f"{number} -> {age} húzás óta nem szerepelt")

A program működéséhez szükséges csomag:

Bash pip install requests

Nincsenek megjegyzések:

Megjegyzés küldése