import sqlite3
import random
DB_NAME = "skandinav_lotto.db"
# ----------------------------
# ADATBETÖLTÉS
# ----------------------------
def load_draws():
conn = sqlite3.connect(DB_NAME)
cur = conn.cursor()
cur.execute("""
SELECT numbers
FROM draws
ORDER BY id ASC
""")
rows = cur.fetchall()
conn.close()
return [list(map(int, r[0].split(","))) for r in rows]
# ----------------------------
# STATISZTIKA SZÁMOLÁS
# ----------------------------
def calculate_stats(draws):
last_seen = {}
freq = {}
for idx, numbers in enumerate(draws):
for n in numbers:
last_seen[n] = idx
freq[n] = freq.get(n, 0) + 1
return last_seen, freq
# ----------------------------
# AI-SÚLYOZÁS
# ----------------------------
def ai_weights(last_seen, freq, total_draws):
weights = {}
for n in range(1, 36):
# ha soha nem volt
last = last_seen.get(n, -1)
f = freq.get(n, 0)
# hidegség (minél régebbi, annál nagyobb)
cold_score = (total_draws - last)
# gyakoriság büntetés
freq_penalty = f * 0.5
weight = cold_score - freq_penalty
if weight < 0:
weight = 0.1
weights[n] = weight
return weights
# ----------------------------
# AI SZÁM GENERÁLÁS
# ----------------------------
def ai_pick_numbers(weights):
numbers = list(weights.keys())
w = list(weights.values())
result = set()
while len(result) < 7:
pick = random.choices(numbers, weights=w, k=1)[0]
result.add(pick)
return sorted(result)
# ----------------------------
# MAIN
# ----------------------------
def main():
draws = load_draws()
if not draws:
print("Nincs adat az adatbázisban!")
return
last_seen, freq = calculate_stats(draws)
weights = ai_weights(last_seen, freq, len(draws))
prediction = ai_pick_numbers(weights)
print("🤖 AI LOTTÓ ELŐREJELZÉS (súlyozott modell):\n")
print("🎯 Javasolt 7 szám:")
print(prediction)
if __name__ == "__main__":
main()
Nincsenek megjegyzések:
Megjegyzés küldése