2026. május 25., hétfő

Statisztikai súlyozás + diverzifikáció.

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
# ----------------------------
def stats(draws):
last_seen = {}
freq = {}

for i, numbers in enumerate(draws):
for n in numbers:
last_seen[n] = i
freq[n] = freq.get(n, 0) + 1

return last_seen, freq


# ----------------------------
# SÚLYOK
# ----------------------------
def weights(last_seen, freq, total):
w = {}

for n in range(1, 36):
last = last_seen.get(n, -1)
f = freq.get(n, 0)

cold = total - last
weight = cold - (f * 0.5)

if weight < 0:
weight = 0.1

w[n] = weight

return w


# ----------------------------
# SZELVÉNY GENERÁLÁS
# ----------------------------
def pick(weights, temperature=1.0):
nums = list(weights.keys())
w = [x ** temperature for x in weights.values()]

result = set()

while len(result) < 7:
result.add(random.choices(nums, weights=w, k=1)[0])

return sorted(result)


# ----------------------------
# KOCKÁZATI SZINTEK
# ----------------------------
def generate_tickets(weights):
low_risk = pick(weights, temperature=0.5) # stabil
mid_risk = pick(weights, temperature=1.0) # balanced
high_risk = pick(weights, temperature=2.0) # extrém

return low_risk, mid_risk, high_risk


# ----------------------------
# MAIN
# ----------------------------
def main():
draws = load_draws()

if not draws:
print("Nincs adat!")
return

last_seen, freq = stats(draws)
w = weights(last_seen, freq, len(draws))

low, mid, high = generate_tickets(w)

print("🎯 KOCKÁZAT ALAPÚ LOTTÓ AI RENDSZER\n")

print("🟢 ALACSONY KOCKÁZAT:")
print(low)

print("\n🟡 KÖZEPES KOCKÁZAT:")
print(mid)

print("\n🔴 MAGAS KOCKÁZAT:")
print(high)


if __name__ == "__main__":
main()

Nincsenek megjegyzések:

Megjegyzés küldése