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

Bankroll szimuláció

import sqlite3
import random

DB_NAME = "skandinav_lotto.db"

TICKET_COST = 300

PRIZES = {
0: 0,
1: 0,
2: 0,
3: 1000,
4: 10000,
5: 100000,
6: 1000000,
7: 5000000 # szimulált jackpot
}


# ----------------------------
# 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]


# ----------------------------
# STAT + SÚLYOK
# ----------------------------
def stats(draws):
last_seen = {}
freq = {}

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

return last_seen, freq


def weights(last_seen, freq, t):
w = {}

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

score = cold - f * 0.5
if score < 0:
score = 0.1

w[n] = score

return w


def generate_ticket(weights):
nums = list(weights.keys())
w = list(weights.values())

ticket = set()

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

return ticket


# ----------------------------
# BANKROLL SZIMULÁCIÓ
# ----------------------------
def simulate(draws, start_money=100000):
bankroll = start_money

print(f"💰 KEZDŐ BANKROLL: {bankroll} Ft\n")

for i in range(10, len(draws)):
history = draws[:i]
actual = set(draws[i])

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

ticket = generate_ticket(w)

hits = len(ticket & actual)

reward = PRIZES.get(hits, 0)

bankroll -= TICKET_COST
bankroll += reward

print(f"{i}. sorsolás | találat: {hits} | nyeremény: {reward} Ft | bankroll: {bankroll} Ft")

print("\n------------------------")
print(f"🏁 VÉGSŐ BANKROLL: {bankroll} Ft")


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

if len(draws) < 15:
print("Túl kevés adat!")
return

simulate(draws)


if __name__ == "__main__":
main()

--------------

Nincsenek megjegyzések:

Megjegyzés küldése