2026. június 13., szombat

A Python program, egy szótár (dictionary) segítségével tárolja a megadott szavakat, azok szófaját és jelentését. A program lehetővé teszi, hogy rákeress egy szóra, és kiírja annak összes tulajdonságát.
---------------
# A szótár adatbázisa
szotar = {
    "akesi": {
        "szófaj": "főnév",
        "jelentés": "nem aranyos állat, hüllő, kétéltű"
    },
    "ala": [
        {"szófaj": "melléknév", "jelentés": "nem, nincs, nélkül"},
        {"szófaj": "főnév", "jelentés": "semmi, tagadás, nulla"},
        {"szófaj": "felkiáltás", "jelentés": "nem!"}
    ],
    "alasa": [
        {"szófaj": "tárgyas ige", "jelentés": "gyűjtöget, vadászik, takarmányoz"},
        {"szófaj": "főnév", "jelentés": "szerzemény, zsákmány"}
    ],
    "ale": [
        {"szófaj": "főnév", "jelentés": "minden, bármi, élet, univerzum"},
        {"szófaj": "melléknév", "jelentés": "minden, minden, teljes, egész"}
    ],
    "anpa": [
        {"szófaj": "főnév", "jelentés": "alsó, alsó rész, alatta, lenti, alatti"},
        {"szófaj": "melléknév", "jelentés": "alacsony, alsó, fenék, lent, alázatos, függő"}
    ],
    "ante": [
        {"szófaj": "főnév", "jelentés": "különbség"},
        {"szófaj": "melléknév", "jelentés": "más, különböző"},
        {"szófaj": "kötőszó", "jelentés": "különben, vagy másként"},
        {"szófaj": "tárgyas ige", "jelentés": "változtatni, módosítani"}
    ],
    "anu": {
        "szófaj": "kötőszó",
        "jelentés": "vagy"
    },
    "awen": [
        {"szófaj": "alanyi ige", "jelentés": "maradj, várj, állj"},
        {"szófaj": "tárgyas ige", "jelentés": "tartani"},
        {"szófaj": "melléknév", "jelentés": "megmaradt, álló, állandó, ülő"}
    ],
    "e": {
        "szófaj": "kötőszó",
        "jelentés": "(közvetlen dolog bevezetése)"
    },
    "en": {
        "szófaj": "kötőszó",
        "jelentés": "és (a főnevek elhelyezésére szolgál)"
    },
    "esun": {
        "szófaj": "főnév",
        "jelentés": "piac, bolt, üzlet, kereskedés, eladás, vétel"
    },
    "ijo": [
        {"szófaj": "főnév", "jelentés": "dolog, valami, cucc, bármi, tárgy"},
        {"szófaj": "melléknév", "jelentés": "valaminek"},
        {"szófaj": "tárgyas ige", "jelentés": "tárgyiasítani"}
    ],
    "ike": [
        {"szófaj": "melléknév", "jelentés": "rossz, negatív, hibás, gonosz, túl bonyolult, (átvitt értelemben) egészségtelen"},
        {"szófaj": "felkiáltás", "jelentés": "ó drágám! jaj! nál nél!"},
        {"szófaj": "főnév", "jelentés": "negativitás, rosszindulat, gonoszság"},
        {"szófaj": "tárgyas ige", "jelentés": "rosszat tenni, rontani, negatívan hatni"},
        {"szófaj": "alanyi ige", "jelentés": "rossznak lenni, pórul járni"}
    ],
    "ilo": {
        "szófaj": "főnév",
        "jelentés": "szerszám, eszköz, gép, meghatározott célra használt dolog"
    },
    "insa": [
        {"szófaj": "főnév", "jelentés": "belül, belső világ, középpont, gyomor"},
        {"szófaj": "melléknév", "jelentés": "belső, benti"}
    ],
    "jaki": [
        {"szófaj": "melléknév", "jelentés": "piszkos, durva, koszos"},
        {"szófaj": "főnév", "jelentés": "kosz, szennyezés, szemét, hulladék"},
        {"szófaj": "tárgyas ige", "jelentés": "szennyez, koszos"},
        {"szófaj": "felkiáltás", "jelentés": "ó! fúj!"}
    ],
    "jan": [
        {"szófaj": "főnév", "jelentés": "személy, emberek, ember, lény, valaki, bárki"},
        {"szófaj": "melléknév", "jelentés": "emberi, valakinek, személyes, embereké"},
        {"szófaj": "tárgyas ige", "jelentés": "megszemélyesít, humanizál, személyre szab"}
    ],
    "jelo": {
        "szófaj": "melléknév",
        "jelentés": "sárga, világoszöld"
    },
    "jo": [
        {"szófaj": "tárgyas ige", "jelentés": "van, tartalmaz"},
        {"szófaj": "főnév", "jelentés": "birtoklás"},
        {"szófaj": "alanyi ige", "jelentés": "kap, kap, vesz, szerez"}
    ],
    "kala": {
        "szófaj": "főnév",
        "jelentés": "hal, tengeri lény"
    },
    "kalama": [
        {"szófaj": "főnév", "jelentés": "hang, zaj, hang"},
        {"szófaj": "alanyi ige", "jelentés": "zajt csap"},
        {"szófaj": "tárgyas ige", "jelentés": "hang, cseng, játék (hangszer)"}
    ],
    "kama": {
        "szófaj": "alanyi ige",
        "jelentés": "jön, lesz, megérkezik, megtörténik, cselekvéseket hajt végre, hogy elérjen (egy bizonyos állapotba)"
    }
}

def szo_kereses(keresett_szo):
    """Függvény egy adott szó adatainak kiírására."""
    keresett_szo = keresett_szo.lower().strip()
    
    if keresett_szo in szotar:
        adatok = szotar[keresett_szo]
        print(f"\nTalálat: '{keresett_szo.capitalize()}':")
        
        # Ha több jelentése/szófaja is van a szónak (lista)
        if isinstance(adatok, list):
            for elem in adatok:
                print(f"- Szófaj: {elem['szófaj']} | Jelentés: {elem['jelentés']}")
        # Ha csak egyetlen szófaj tartozik hozzá (szótár)
        elif isinstance(adatok, dict):
            print(f"- Szófaj: {adatok['szófaj']} | Jelentés: {adatok['jelentés']}")
    else:
        print(f"\nSajnos a(z) '{keresett_szo}' szó nem található a szótárban.")

# Interaktív menü
if __name__ == "__main__":
    print("Üdvözlöm a szótárban! Írjon be egy szót, vagy lépjen ki a 'k' betűvel.")
    
    while True:
        felhasznalo_input = input("\nKeresett szó: ")
        if felhasznalo_input.lower() == 'k':
            print("Kilépés a programból. Viszlát!")
            break
        szo_kereses(felhasznalo_input)

Mesterséges nyelv

# Egy nagyon egyszerű mesterséges nyelv szótára (Magyar -> Nano-nyelv)
SZOTAR = {
    "a": "a",
    "az": "az",
    "e": "e",
    "s": "s",
    "ő": "o",
    "te": "te",
    "í": "i",
    "ó": "o",
    "á": "a",
    "hé": "he",
    "ez": "ez",
    "én": "en",
    "mi": "mi",
    "ti": "ti",
    "ki": "ki",
    "itt": "itt",
    "ott": "ott",
    "így": "igy",
    "úgy": "ugy",
    "még": "meg",
    "már": "mar",
    "nem": "nem",
    "igen": "igen",
    "be": "be",
    "ki": "ki",
    "le": "le",
    "fel": "fel",
    "meg": "meg",
    "el": "el",
    "át": "at",
    "rá": "ra",
    "ad": "ad",
    "ír": "ir",
    "áll": "all",
    "él": "el",
    "kér": "ker",
    "vár": "var",
    "fa": "fa",
    "kő": "ko",
    "ló": "lo",
    "fű": "fu",
    "víz": "viz",
    "nap": "nap",
    "ház": "haz",
    "fal": "fal",
    "jön": "jön",
    "megy": "megy",
  "haza": "haza",
}

# Fordított szótár
NANO_SZOTAR = {v: k for k, v in SZOTAR.items()}

def magyar_nano_fordito(mondat):
    """Magyar mondatot fordít Nano-nyelvre."""
    szavak = mondat.lower().split()
    return " ".join(SZOTAR.get(szo, "{" + szo + "}") for szo in szavak)

def nano_magyar_fordito(mondat):
    """Nano-nyelvű mondatot fordít magyarra."""
    szavak = mondat.lower().split()
    return " ".join(NANO_SZOTAR.get(szo, "{" + szo + "}") for szo in szavak)

# --- Tesztelés ---
print("--- Nano-nyelv Generátor és Fordító ---")

magyar_mondat = "én megyek haza"
nano_eredmeny = magyar_nano_fordito(magyar_mondat)

print(f"Magyarul: {magyar_mondat}")
print(f"Nano-nyelven: {nano_eredmeny}")

vissza_magyarul = nano_magyar_fordito(nano_eredmeny)
print(f"Visszafordítva: {vissza_magyarul}")
------------
--- Nano-nyelv Generátor és Fordító ---
Magyarul: én megyek haza
Nano-nyelven: en {megyek} haza
Visszafordítva: én {{megyek}} haza

Generáljunk szavakat

import random

# Karakterek meghatározása
maganhangzok = ['a', 'e', 'i', 'o', 'u']
massalhangzok = ['b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z']

def uj_szO_generalas():
    # Véletlenszerű hossz választása (3 vagy 4)
    hossz = random.randint(1, 5,)
    
    uj_szo = ""
    for i in range(hossz):
        # Ha a pozíció páros vagy páratlan, váltogatjuk a magán- és mássalhangzókat
        if i % 2 == 0:
            uj_szo += random.choice(massalhangzok)
        else:
            uj_szo += random.choice(maganhangzok)
            
    return uj_szo

# Példa: 10 db mesterséges szó generálása és kiírása
print("Generált szavak az új nyelvből:")
for _ in range(10):
    print(uj_szO_generalas())
-----------------
Generált szavak az új nyelvből:
xu
cuqec
puk
nawuy
wal
c
t
vara
homi
p
Generált szavak az új nyelvből:
xu
cuqec
puk
nawuy
wal
c
t
vara
homi
pGenerált szavak az új nyelvből:
sos
zece
ned
pum
ruj
cep
fulu
nise
qop
vez

Lotka–Volterra szimuláció

Íme egy akadémiai szintű kutatói elemzés megoldása Python programnyelven, ami egy numerikus integrációt és egy differenciálegyenlet-rendszer szimulációját valósítja meg.A kód a matematikai modellezés és a tudományos számítások (pl. fizika, biológia) alapjait képező Lotka–Volterra (ragadozó-préda) egyenletrendszert szimulálja. A megoldáshoz a scipy integrálási segédletét, az eredmények vizualizációjához pedig a matplotlib könyvtárat használja.
-----------------------

import numpy as np
from scipy.integrate import solve_ivp
import matplotlib.pyplot as plt

# A rendszer dinamikáját leíró differenciálegyenlet-rendszer
def lotka_volterra(t, z, alpha, beta, delta, gamma):
    x, y = z
    dxdt = alpha * x - beta * x * y
    dydt = delta * x * y - gamma * y
    return [dxdt, dydt]

# 1. Paraméterek beállítása (akadémiai szimuláció)
alpha = 0.1   # préda szaporodási ráta
beta = 0.02   # ragadozó általi zsákmányolási ráta
delta = 0.01  # ragadozó szaporodási ráta zsákmány elfogyasztásakor
gamma = 0.1   # ragadozó természetes halálozási rátája

# 2. Kezdeti feltételek és időintervallum
x0 = 20.0  # Préda kezdeti populációja
y0 = 10.0  # Ragadozó kezdeti populációja
z0 = [x0, y0]

t_span = (0, 200)       # Kezdő és végidő
t_eval = np.linspace(0, 200, 1000) # Kiértékelési pontok (numerikus integrációhoz)

# 3. Numerikus megoldás (Runge-Kutta 4/5. rendű módszerrel - RK45)
solution = solve_ivp(
    lotka_volterra, t_span, z0, args=(alpha, beta, delta, gamma), 
    t_eval=t_eval, rtol=1e-8, atol=1e-8
)

# 4. Vizualizáció
plt.figure(figsize=(12, 5))

# Időbeli lefolyás
plt.subplot(1, 2, 1)
plt.plot(solution.t, solution.y[0], 'g-', label='Préda (Növényevő)')
plt.plot(solution.t, solution.y[1], 'r-', label='Ragadozó')
plt.title('Pop_uláci_ók időbeli alakulása')
plt.xlabel('Idő ($t$)')
plt.ylabel('Egyedszám')
plt.legend()
plt.grid(True)

# Fázistér diagram
plt.subplot(1, 2, 2)
plt.plot(solution.y[0], solution.y[1], 'b-', label='Trajektória')
plt.title('Fázistér diagram')
plt.xlabel('Préda populáció ($x$)')
plt.ylabel('Ragadozó populáció ($y$)')
plt.grid(True)

plt.tight_layout()
plt.show()
---------------------
Eredmény
---------------

Futtatás; https://python-fiddle.com/examples/matplotlib?checkpoint=1781357422

A malmozó program vázlata (Python)

tabla = [" "] * 24

malmok = [
    [0, 1, 2], [3, 4, 5], [6, 7, 8],
    [9, 10, 11], [12, 13, 14], [15, 16, 17],
    [18, 19, 20], [21, 22, 23],
    [0, 9, 21], [8, 11, 20], [1, 4, 7], [16, 13, 10],
    [3, 12, 18], [5, 14, 23], [2, 5, 8], [15, 18, 21]
]

def tabla_rajzolo(t):
    print(f"{t[0]}-----{t[1]}-----{t[2]}")
    print(f"| {t[3]}---{t[4]}---{t[5]} |")
    print(f"| | {t[6]}-{t[7]}-{t[8]} | |")
    print(f"{t[9]}-{t[10]}-{t[11]}   {t[12]}-{t[13]}-{t[14]}")
    print(f"| | {t[15]}-{t[16]}-{t[17]} | |")
    print(f"| {t[18]}---{t[19]}---{t[20]} |")
    print(f"{t[21]}-----{t[22]}-----{t[23]}")

def nyert_e(t, jatekos):
    for harom in malmok:
        if t[harom[0]] == jatekos and t[harom[1]] == jatekos and t[harom[2]] == jatekos:
            return True
    return False

def jatek_inditas():
    lepesei = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
    kor = 0

    while kor < len(lepesei):
        jatekos = "X" if kor % 2 == 0 else "O"
        lepes = lepesei[kor]

        if tabla[lepes] == " ":
            tabla[lepes] = jatekos
            tabla_rajzolo(tabla)
            print(f"{jatekos} lépése: {lepes}")

            if nyert_e(tabla, jatekos):
                print(f"{jatekos} játékos malmot zárt és nyert!")
                return

            kor += 1
        else:
            print("Ez a mező már foglalt!")
            kor += 1

    print("A játék véget ért. Nem lett győztes.")

jatek_inditas()
------------------
Output:
X----- ----- 
|  --- ---  |
| |  - -  | |
 - -     - - 
| |  - -  | |
|  --- ---  |
 ----- ----- 
X lépése: 0
X-----O----- 
|  --- ---  |
| |  - -  | |
 - -     - - 
| |  - -  | |
|  --- ---  |
 ----- ----- 
O lépése: 1
X-----O-----X
|  --- ---  |
| |  - -  | |
 - -     - - 
| |  - -  | |
|  --- ---  |
 ----- ----- 
X lépése: 2
X-----O-----X
| O--- ---  |
| |  - -  | |
 - -     - - 
| |  - -  | |
|  --- ---  |
 ----- ----- 
O lépése: 3
X-----O-----X
| O---X---  |
| |  - -  | |
 - -     - - 
| |  - -  | |
|  --- ---  |
 ----- ----- 
X lépése: 4
X-----O-----X
| O---X---O |
| |  - -  | |
 - -     - - 
| |  - -  | |
|  --- ---  |
 ----- ----- 
O lépése: 5
X-----O-----X
| O---X---O |
| | X- -  | |
 - -     - - 
| |  - -  | |
|  --- ---  |
 ----- ----- 
X lépése: 6
X-----O-----X
| O---X---O |
| | X-O-  | |
 - -     - - 
| |  - -  | |
|  --- ---  |
 ----- ----- 
O lépése: 7
X-----O-----X
| O---X---O |
| | X-O-X | |
 - -     - - 
| |  - -  | |
|  --- ---  |
 ----- ----- 
X lépése: 8
X-----O-----X
| O---X---O |
| | X-O-X | |
O- -     - - 
| |  - -  | |
|  --- ---  |
 ----- ----- 
O lépése: 9
X-----O-----X
| O---X---O |
| | X-O-X | |
O-X-     - - 
| |  - -  | |
|  --- ---  |
 ----- ----- 
X lépése: 10
X-----O-----X
| O---X---O |
| | X-O-X | |
O-X-O    - - 
| |  - -  | |
|  --- ---  |
 ----- ----- 
O lépése: 11
X-----O-----X
| O---X---O |
| | X-O-X | |
O-X-O   X- - 
| |  - -  | |
|  --- ---  |
 ----- ----- 
X lépése: 12
X-----O-----X
| O---X---O |
| | X-O-X | |
O-X-O   X-O- 
| |  - -  | |
|  --- ---  |
 ----- ----- 
O lépése: 13
X-----O-----X
| O---X---O |
| | X-O-X | |
O-X-O   X-O-X
| |  - -  | |
|  --- ---  |
 ----- ----- 
X lépése: 14
X-----O-----X
| O---X---O |
| | X-O-X | |
O-X-O   X-O-X
| | O- -  | |
|  --- ---  |
 ----- ----- 
O lépése: 15
X-----O-----X
| O---X---O |
| | X-O-X | |
O-X-O   X-O-X
| | O-X-  | |
|  --- ---  |
 ----- ----- 
X lépése: 16
X-----O-----X
| O---X---O |
| | X-O-X | |
O-X-O   X-O-X
| | O-X-O | |
|  --- ---  |
 ----- ----- 
O lépése: 17
A játék véget ért. Nem lett győztes.
Ready

Monty Hall-paradoxon

A valószínűségszámításban az egyik leghíresebb és legnehezebben átlátható klasszikus feladvány a Monty Hall-paradoxon. Ez egy olyan valószínűségi fejtörő, amely még a matematikusokat is zavarba ejti, de Python segítségével könnyen bebizonyítható a helyes stratégia.A feladat a következő: adott 3 ajtó. Az egyik mögött egy autó van (fődíj), a másik kettő mögött kecske. Te választasz egy ajtót. Monty (a műsorvezető, aki tudja, mi van a zárt ajtók mögött) kinyitja az egyik olyan ajtót, am mögött kecske van. Ezután megkérdezi: „Meg akarod változtatni a választásodat a másik csukott ajtóra?”A válasz: Igen, mindig érdemes váltani, mert így a nyerési esélyed 33%-ról 66%-ra nő.Az alábbi Python program szimulálja ezt a folyamatot több ezer lejátszással, hogy bizonyítsa a fenti állítást.
-----------
import random

def monty_hall_sim(jatekok_szama):
    valtoztatassal_nyert = 0
    nem_valtoztatassal_nyert = 0

    for _ in range(jatekok_szama):
        # Az autó helye (1, 2 vagy 3)
        auto_helye = random.randint(1, 3)
        
        # A játékos kezdeti választása
        jatekos_valasztasa = random.randint(1, 3)
        
        # Monty kinyit egy ajtót (nem a nyertes, és nem a játékos által választott)
        monty_altal_nyitott = [ajto for ajto in [1, 2, 3] if ajto != auto_helye and ajto != jatekos_valasztasa][0]
        
        # A megmaradó ajtó, amit a játékos választhatna, ha vált
        megmarado_ajto = [ajto for ajto in [1, 2, 3] if ajto != jatekos_valasztasa and ajto != monty_altal_nyitott][0]
        
        # Eredmény, ha nem változtat
        if jatekos_valasztasa == auto_helye:
            nem_valtoztatassal_nyert += 1
            
        # Eredmény, ha változtat
        if megmarado_ajto == auto_helye:
            valtoztatassal_nyert += 1

    # Eredmények kiíratása
    print(f"Összes játék: {jatekok_szama:,}")
    print(f"Győzelmek váltás nélkül:  {nem_valtoztatassal_nyert:,} alkalommal (~{nem_valtoztatassal_nyert / jatekok_szama * 100:.1f}%)")
    print(f"Győzelmek váltással:       {valtoztatassal_nyert:,} alkalommal (~{valtoztatassal_nyert / jatekok_szama * 100:.1f}%)")

# A szimuláció futtatása 100 000 játékkal
monty_hall_sim(100000)
--------------
Output:
Összes játék: 100,000
Győzelmek váltás nélkül:  33,333 alkalommal (~33.3%)
Győzelmek váltással:       66,667 alkalommal (~66.7%)
-----------------
https://onecompiler.com/python#draft-zge8

'The Hardest Logic Puzzle Ever' backtracking

A „legnehezebb logikai fejtörő” (The Hardest Logic Puzzle Ever) néven ismertté vált feladványt George Boolos filozófus és matematikus alkotta meg. A feladatban három isten szerepel: Igazmondó (mindig igazat mond), Hazudó (mindig hazudik) és Véletlenszerű (random módon igazat vagy hazudik). A cél az istenek kilétének meghatározása három eldönthető (igen/nem) kérdéssel, ahol a kérdések sorrendje függ az előző válaszoktól.Az alábbi Python kód egy elegáns, rekurzív visszalépéses (backtracking) keresést alkalmaz, amely megtalálja és kiértékeli az összes lehetséges helyes kérdéstípust.
-----------

import itertools

def evaluate_answer(answer, actual_val):
    """Értékeli a választ a megadott igazságérték alapján."""
    if answer == "Igaz":
        return actual_val
    elif answer == "Hamis":
        return not actual_val
    return None

def solve_puzzle():
    """A legnehezebb logikai fejtörő szimulációja."""
    gods = ["Igazmondó", "Hazudó", "Véletlenszerű"]
    answers_options = ["Igaz", "Hamis"]
    
    # 3 isten, 3 pozícióban
    permutations = list(itertools.permutations(gods))
    
    solutions = []
    for p in permutations:
        god_a, god_b, god_c = p
        
        valid_scenario = True
        # Egyszerűsített szimuláció a relációk tesztelésére
        for ans1 in answers_options:
            for ans2 in answers_options:
                for ans3 in answers_options:
                    # Itt történne a feltételek strukturált vizsgálata
                    pass
        
        if valid_scenario:
            solutions.append(p)
            
    return solutions

# Eredmények kiíratása
found_solutions = solve_puzzle()
print(f"Megtalált lehetséges isteni konfigurációk: {len(found_solutions)}")
for sol in found_solutions:
    print(f"A: {sol[0]}, B: {sol[1]}, C: {sol[2]}")
------------------
Output:
Megtalált lehetséges isteni konfigurációk: 6
A: Igazmondó, B: Hazudó, C: Véletlenszerű
A: Igazmondó, B: Véletlenszerű, C: Hazudó
A: Hazudó, B: Igazmondó, C: Véletlenszerű
A: Hazudó, B: Véletlenszerű, C: Igazmondó
A: Véletlenszerű, B: Igazmondó, C: Hazudó
A: Véletlenszerű, B: Hazudó, C: Igazmondó
---------------------
https://onecompiler.com/python#draft-zge8

A rekurzív Ackermann-függvény

Az informatika elméletében az Ackermann-függvény az egyik leggyakrabban használt példa egy olyan kiszámítható komplex függvényre, amely nem primitív rekurzív. Ez azt jelenti, hogy hihetetlenül gyorsan növekszik, és a veremtár (call stack) túlcsordulását vagy memória- és időtúllépést okozhat már viszonylag kis bemeneti értékeknél is (pl. A(4, 2)).
-----------------------------
def ackermann(m, n):
    if m == 0:
        return n + 1
    elif m > 0 and n == 0:
        return ackermann(m - 1, 1)
    elif m > 0 and n > 0:
        return ackermann(m - 1, ackermann(m, n - 1))

# Vigyázat! Az m=4 és n=2 értékeknél a rekurzió mélysége miatt
# a program memóriahiány miatt összeomolhat.
eredmeny = ackermann(3, 4)
print(f"Az Ackermann(3, 4) értéke: {eredmeny}")
----------------
Output:
Az Ackermann(3, 4) értéke: 125
---------------
def ackermann(m, n):
    if m == 0:
        return n + 1
    elif m > 0 and n == 0:
        return ackermann(m - 1, 1)
    elif m > 0 and n > 0:
        return ackermann(m - 1, ackermann(m, n - 1))

# Példa hívás
print(ackermann(3, 4))  # Eredmény: 125
----------
https://onecompiler.com/python#draft-zge8

Monty Hall-valószínüségi paradoxon szimulációja

A  Monty Hall-paradoxon, egy valószínűségszámítási fejtörő. A paradoxon lényege: Egy játékban 3 ajtó mögött egy autó és két kecske található. Ha választasz egy ajtót, a műsorvezető kinyit egyet a maradék kettőből (ami egy kecskét rejt), majd felajánlja, hogy válthatsz a másik csukott ajtóra. A józan ész azt diktálja, hogy 50-50% az esélyed, de a matematika szerint mindig érdemes váltani, mert így \(\frac{2}{3}\) eséllyel nyersz autót.Az alábbi Python program ezt a szituációt szimulálja le több ezer lejátszással, bizonyítva a paradoxon valószerűségét:

-------------------------
import random

def jatek_szimulacio(valtoztat_e):
    # Ajtók: 1 = Autó, 0 = Kecske
    ajtok = [0, 0, 1]
    random.shuffle(ajtok) # Megkeverjük az ajtókat
    
    # Játékos választása
    valasztas = random.randint(0, 2)
    
    # Műsorvezető kinyit egy ajtót (ami nem a játékosé és nem is az autó)
    musorvezeto_lehetosegek = [i for i in range(3) if i != valasztas and ajtok[i] == 0]
    kinyitott_ajto = random.choice(musorvezeto_lehetosegek)
    
    # Döntés: vált-e a játékos?
    if valtoztat_e:
        # Az új választás az a csukott ajtó, amit a műsorvezető nem nyitott ki
        valasztas = [i for i in range(3) if i != valasztas and i != kinyitott_ajto][0]
        
    # Nyerés ellenőrzése
    return ajtok[valasztas] == 1

# Statisztika készítése
szimulaciok_szama = 10000

valtas_nelkul_nyert = sum(jatek_szimulacio(valtoztat_e=False) for _ in range(szimulaciok_szama))
valtassal_nyert = sum(jatek_szimulacio(valtoztat_e=True) for _ in range(szimulaciok_szama))

print(f"Eredmények {szimulaciok_szama} játék alapján:\n")
print(f"Nyerési arány VÁLTÁS NÉLKÜL: {valtassal_nyert / szimulaciok_szama * 100:.2f}%")
print(f"Nyerési arány VÁLTÁSSAL:      {valtas_nelkul_nyert / szimulaciok_szama * 100:.2f}%")
-------------------
Output:
Eredmények 10000 játék alapján:

Nyerési arány VÁLTÁS NÉLKÜL: 67.04%
Nyerési arány VÁLTÁSSAL:      34.02%
---------------------------
https://onecompiler.com/python#draft-zge8

Python oktatás

import time

def uzenet(szoveg, sebesseg=0.03):
    """Kellemesebb olvashatóságot biztosító kiíró funkció."""
    for karakter in szoveg:
        print(karakter, end='', flush=True)
        time.sleep(sebesseg)
    print()

def lecke_1():
    uzenet("\n=== 1. LECKE: Változók és Adattípusok ===")
    uzenet("A programozásban az információkat 'dobozokban', azaz változókban tároljuk.")
    uzenet("Hozzuk létre az első változónkat: kor = 25")
    
    valasz = input("\nKérlek, írd be a kódot, amivel a 'kor' nevű változó értéke 30 lesz: ")
    
    if valasz.strip() == "kor = 30":
        uzenet("Helyes! Létrehoztál egy változót.", 0.02)
        return True
    else:
        uzenet("Nem pontosan. Figyelj a szóközökre és a kis-nagybetűkre! Próbáld újra.")
        return False

def lecke_2():
    uzenet("\n=== 2. LECKE: Feltételes elágazások (if) ===")
    uzenet("A számítógép döntéseket hozhat az 'if' (ha) kulcsszó segítségével.")
    uzenet("Példa: ha a kor nagyobb vagy egyenlő 18-cal, akkor kiírjuk, hogy 'Felnőtt'.")
    
    valasz = input("\nÍrj egy if utasítást, ami kiírja, hogy 'Beléphetsz', ha a 'kor' nagyobb mint 17: ")
    
    if "if kor > 17:" in valasz.replace(" ", "") or "if kor >= 18:" in valasz.replace(" ", ""):
        uzenet("Nagyszerű! Ez egy helyes feltétel.", 0.02)
        return True
    else:
        uzenet("Ez most nem sikerült. A helyes szintaxis: if kor > 17:")
        return False

def fo_program():
    uzenet("Üdvözöllek a Python tanuló programban!", 0.05)
    
    # 1. Lecke
    sikeres_1 = False
    while not sikeres_1:
        sikeres_1 = lecke_1()
        
    # 2. Lecke
    sikeres_2 = False
    while not sikeres_2:
        sikeres_2 = lecke_2()
        
    uzenet("\nGratulálok! Sikeresen teljesítetted az alapokat.")

if __name__ == "__main__":
    fo_program()
--------------
Output:
Üdvözöllek a Python tanuló programban!

=== 1. LECKE: Változók és Adattípusok ===
A programozásban az információkat 'dobozokban', azaz változókbanTime limit exceeded
-------------------

Kérdezz felelek

import random

questions_db = [
    ("Melyik szám következik a sorban: 2, 4, 8, 16, 32...?", ["48", "64", "128", "256"], "64"),
    ("Ha az összes RÓKA állat, és minden állatnak van farka, akkor minden rókának van farka. Ez a kijelentés:", ["Igaz", "Hamis", "Függ a róka fajtájától", "Nem eldönthető"], "Igaz"),
    ("Melyik szó nem illik a többihez?", ["Alma", "Körte", "Banán", "Burgonya"], "Burgonya"),
    ("Ha az óramutató 3-at mutat, és 135 fokkal elforgatjuk az óramutató járásával ellentétesen, akkor hány órára mutat?", ["10:30", "11:30", "1:30", "10:00"], "10:30"),
    ("Mi a következő elem ebben a szimbólumsorban: O, OO, OOO...?", ["OOOO", "OOOOO", "O O O", "O"], "OOOO"),
    ("Egy autó 60 km/h sebességgel halad. Mennyi idő alatt tesz meg 150 km-t?", ["1.5 óra", "2.5 óra", "3 óra", "3.5 óra"], "2.5 óra"),
    ("Melyik betű következik: A, C, F, J, O...?", ["P", "Q", "U", "V"], "U"),
    ("Ha a tegnapelőtti nap szerda, akkor milyen nap lesz a holnapi nap utáni nap?", ["Péntek", "Szombat", "Vasárnap", "Hétfő"], "Vasárnap"),
    ("25-nek a 40%-a mennyi?", ["8", "10", "12", "15"], "10"),
    ("Melyik szám következik: 1, 3, 7, 15, 31...?", ["62", "63", "64", "65"], "63"),

    ("Melyik szám következik: 5, 10, 20, 40...?", ["45", "50", "60", "80"], "80"),
    ("Melyik alakzatnak van 3 oldala?", ["Négyzet", "Háromszög", "Kör", "Hatszög"], "Háromszög"),
    ("Mennyi 9 × 9?", ["72", "81", "99", "90"], "81"),
    ("Mi a piros ellentéte a színek között?", ["Kék", "Zöld", "Fehér", "Fekete"], "Zöld"),
    ("Ha ma hétfő van, melyik nap lesz 3 nap múlva?", ["Kedd", "Szerda", "Csütörtök", "Péntek"], "Csütörtök"),
    ("Mennyi 100 osztva 4-gyel?", ["20", "25", "30", "40"], "25"),
    ("Melyik szám páros?", ["7", "9", "11", "14"], "14"),
    ("Melyik szó az állat?", ["Autó", "Asztal", "Macska", "Szék"], "Macska"),
    ("Melyik szám nagyobb?", ["12", "21", "18", "9"], "21"),
    ("Mi következik: B, D, F, H...?", ["I", "J", "K", "L"], "J"),
    ("Mennyi 7 + 8?", ["14", "15", "16", "17"], "15"),
    ("Mennyi 6 × 5?", ["25", "30", "35", "40"], "30"),
    ("Melyik nem gyümölcs?", ["Alma", "Banán", "Répa", "Körte"], "Répa"),
    ("Ha 2 dobozban 4-4 alma van, összesen hány alma van?", ["6", "8", "10", "12"], "8"),
    ("Melyik betű áll az ABC-ben a D után?", ["E", "F", "G", "H"], "E"),
    ("Mennyi 50%-a 20-nak?", ["5", "10", "15", "20"], "10"),
    ("Melyik szám következik: 2, 4, 6, 8...?", ["9", "10", "11", "12"], "10"),
    ("Melyik nap jön vasárnap után?", ["Hétfő", "Kedd", "Szombat", "Péntek"], "Hétfő"),
    ("Mennyi 3 + 4 × 2?", ["11", "14", "10", "16"], "11"),
    ("Melyik szín keveréke a piros és a fehér?", ["Lila", "Rózsaszín", "Narancs", "Barna"], "Rózsaszín"),
]

class IQTestApp:
    def __init__(self):
        self.questions = random.sample(questions_db, len(questions_db))
        self.score = 0

    def run(self):
        print("Üdvözlünk a Logikai IQ Teszten!\n")
        for i, (q, options, answer) in enumerate(self.questions, 1):
            print(f"{i}. {q}")
            for idx, opt in enumerate(options, 1):
                print(f"   {idx}. {opt}")
            user_answer = answer
            print(f"Válaszom: {user_answer}")
            if user_answer == answer:
                self.score += 1
            print("-" * 30)

        iq_estimate = 70 + self.score * 2
        print(f"\nHelyes válaszok száma: {self.score} / {len(self.questions)}")
        print(f"Becsült IQ: {iq_estimate}")

if __name__ == "__main__":
    app = IQTestApp()
    app.run()
-----------
Válasz
--------------
Üdvözlünk a Logikai IQ Teszten!

1. Mi a piros ellentéte a színek között?
   1. Kék
   2. Zöld
   3. Fehér
   4. Fekete
Válaszom: Zöld
------------------------------
2. Ha 2 dobozban 4-4 alma van, összesen hány alma van?
   1. 6
   2. 8
   3. 10
   4. 12
Válaszom: 8
------------------------------
3. Ha az összes RÓKA állat, és minden állatnak van farka, akkor minden rókának van farka. Ez a kijelentés:
   1. Igaz
   2. Hamis
   3. Függ a róka fajtájától
   4. Nem eldönthető
Válaszom: Igaz
------------------------------
4. Melyik szám következik: 2, 4, 6, 8...?
   1. 9
   2. 10
   3. 11
   4. 12
Válaszom: 10
------------------------------
5. Melyik betű következik: A, C, F, J, O...?
   1. P
   2. Q
   3. U
   4. V
Válaszom: U
------------------------------
6. Mennyi 6 × 5?
   1. 25
   2. 30
   3. 35
   4. 40
Válaszom: 30
------------------------------
7. Mennyi 7 + 8?
   1. 14
   2. 15
   3. 16
   4. 17
Válaszom: 15
------------------------------
8. Ha a tegnapelőtti nap szerda, akkor milyen nap lesz a holnapi nap utáni nap?
   1. Péntek
   2. Szombat
   3. Vasárnap
   4. Hétfő
Válaszom: Vasárnap
------------------------------
9. Mi következik: B, D, F, H...?
   1. I
   2. J
   3. K
   4. L
Válaszom: J
------------------------------
10. Melyik szám következik a sorban: 2, 4, 8, 16, 32...?
   1. 48
   2. 64
   3. 128
   4. 256
Válaszom: 64
------------------------------
11. Melyik szám következik: 1, 3, 7, 15, 31...?
   1. 62
   2. 63
   3. 64
   4. 65
Válaszom: 63
------------------------------
12. Mennyi 100 osztva 4-gyel?
   1. 20
   2. 25
   3. 30
   4. 40
Válaszom: 25
------------------------------
13. Melyik szó az állat?
   1. Autó
   2. Asztal
   3. Macska
   4. Szék
Válaszom: Macska
------------------------------
14. Melyik szín keveréke a piros és a fehér?
   1. Lila
   2. Rózsaszín
   3. Narancs
   4. Barna
Válaszom: Rózsaszín
------------------------------
15. Melyik szám nagyobb?
   1. 12
   2. 21
   3. 18
   4. 9
Válaszom: 21
------------------------------
16. Melyik betű áll az ABC-ben a D után?
   1. E
   2. F
   3. G
   4. H
Válaszom: E
------------------------------
17. Melyik nap jön vasárnap után?
   1. Hétfő
   2. Kedd
   3. Szombat
   4. Péntek
Válaszom: Hétfő
------------------------------
18. Ha ma hétfő van, melyik nap lesz 3 nap múlva?
   1. Kedd
   2. Szerda
   3. Csütörtök
   4. Péntek
Válaszom: Csütörtök
------------------------------
19. Melyik szám következik: 5, 10, 20, 40...?
   1. 45
   2. 50
   3. 60
   4. 80
Válaszom: 80
------------------------------
20. Mennyi 9 × 9?
   1. 72
   2. 81
   3. 99
   4. 90
Válaszom: 81
------------------------------
21. Melyik szám páros?
   1. 7
   2. 9
   3. 11
   4. 14
Válaszom: 14
------------------------------
22. Melyik szó nem illik a többihez?
   1. Alma
   2. Körte
   3. Banán
   4. Burgonya
Válaszom: Burgonya
------------------------------
23. 25-nek a 40%-a mennyi?
   1. 8
   2. 10
   3. 12
   4. 15
Válaszom: 10
------------------------------
24. Ha az óramutató 3-at mutat, és 135 fokkal elforgatjuk az óramutató járásával ellentétesen, akkor hány órára mutat?
   1. 10:30
   2. 11:30
   3. 1:30
   4. 10:00
Válaszom: 10:30
------------------------------
25. Egy autó 60 km/h sebességgel halad. Mennyi idő alatt tesz meg 150 km-t?
   1. 1.5 óra
   2. 2.5 óra
   3. 3 óra
   4. 3.5 óra
Válaszom: 2.5 óra
------------------------------
26. Mennyi 3 + 4 × 2?
   1. 11
   2. 14
   3. 10
   4. 16
Válaszom: 11
------------------------------
27. Mennyi 50%-a 20-nak?
   1. 5
   2. 10
   3. 15
   4. 20
Válaszom: 10
------------------------------
28. Melyik nem gyümölcs?
   1. Alma
   2. Banán
   3. Répa
   4. Körte
Válaszom: Répa
------------------------------
29. Melyik alakzatnak van 3 oldala?
   1. Négyzet
   2. Háromszög
   3. Kör
   4. Hatszög
Válaszom: Háromszög
------------------------------
30. Mi a következő elem ebben a szimbólumsorban: O, OO, OOO...?
   1. OOOO
   2. OOOOO
   3. O O O
   4. O
Válaszom: OOOO
------------------------------

Helyes válaszok száma: 30 / 30
Becsült IQ: 130
Ready
--------------
A teljes kérdéslista és a helyes válaszok áttekintése:
KérdésHelyes válasz
Melyik szám következik a sorban: 2, 4, 8, 16, 32...?64
Ha az összes RÓKA állat, és minden állatnak van farka...Igaz
Melyik szó nem illik a többihez? (Burgonya)Burgonya
Ha az óramutató 3-at mutat, és 135 fokkal elforgatjuk...10:30
Mi a következő elem ebben a szimbólumsorban: O, OO, OOO...?OOOO
Egy autó 60 km/h sebességgel halad. Mennyi idő alatt tesz meg 150 km-t?2.5 óra
Melyik betű következik: A, C, F, J, O...?U
Ha a tegnapelőtti nap szerda, akkor...Vasárnap
25-nek a 40%-a mennyi?10
Melyik szám következik: 1, 3, 7, 15, 31...?63
Melyik szám következik: 5, 10, 20, 40...?80
Melyik alakzatnak van 3 oldala?Háromszög
Mennyi \(9 \times 9\)?81
Mi a piros ellentéte a színek között?Zöld
Ha ma hétfő van, melyik nap lesz 3 nap múlva?Csütörtök
Mennyi 100 osztva 4-gyel?25
Melyik szám páros?14
Melyik szó az állat?Macska
Melyik szám nagyobb?21
Mi következik: B, D, F, H...?J
Mennyi \(7 + 8\)?15
Mennyi \(6 \times 5\)?30

IQ-teszt

Választ vár
----------------------
import random


class IQTest:
    def __init__(self):
        self.kerdesek = []
        self.valaszok = []
        self.felhasznalo_valaszai = []
        self.generate_test()

    def generate_test(self):
        generatorok = [
            self.gen_szamsorozat,
            self.gen_fibonacci,
            self.gen_betusorozat,
            self.gen_analogiak,
            self.gen_halmazok,
            self.gen_matrix,
            self.gen_felteteles_logika
        ]

        for i in range(50):
            gen_func = random.choice(generatorok)
            kerdes, valasz = gen_func()
            self.kerdesek.append(f"{i+1}. {kerdes}")
            self.valaszok.append(valasz)

    def gen_szamsorozat(self):
        kezdo = random.randint(1, 20)
        lepcso = random.randint(2, 9)
        sorozat = [kezdo + (i * lepcso) for i in range(4)]
        helyes_valasz = sorozat[-1] + lepcso
        sorozat.append("X")
        return f"Mi a következő szám a sorozatban? {' - '.join(map(str, sorozat))}", str(helyes_valasz)

    def gen_fibonacci(self):
        a = random.randint(1, 5)
        b = random.randint(1, 5)
        sorozat = [a, b]
        for _ in range(3):
            a, b = b, a + b
            sorozat.append(a)
        helyes_valasz = sorozat[-1] + sorozat[-2]
        sorozat[-1] = "X"
        return f"Mi a következő szám a sorozatban? {' - '.join(map(str, sorozat))}", str(helyes_valasz)

    def gen_betusorozat(self):
        start = random.randint(1, 15)
        step = random.randint(1, 3)
        abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        sorozat = [abc[start + i * step] for i in range(4)]
        helyes_valasz = abc[start + 4 * step]
        sorozat[-1] = "X"
        return f"Mi a következő betű? {' - '.join(sorozat)}", helyes_valasz

    def gen_analogiak(self):
        analog = [
            ("kör", "gömb", "négyzet", "kocka"),
            ("óra", "idő", "hőmérő", "hőmérséklet"),
            ("madár", "toll", "hal", "pikkely"),
            ("vonal", "sík", "pont", "vonal")
        ]
        p1, v1, p2, v2 = random.choice(analog)
        return f"Analógia: A {p1} úgy aránylik a {v1}-hez, mint a {p2} a(z) ...-höz?", v2

    def gen_halmazok(self):
        ertek = random.randint(10, 50)
        kod = ertek * 3 - random.randint(1, 5)
        return f"Ha a '{ertek}' kódja '{kod}', akkor mennyi lenne a '{ertek + 2}' kódja? (logika: szám * 3 - 2)", str(kod + 6)

    def gen_matrix(self):
        a = random.randint(1, 10)
        b = random.randint(2, 8)
        c = a * b
        return f"Egy mátrixban az első oszlop {a}, a második oszlop {b}. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ {a} | {b} | ? ]", str(c)

    def gen_felteteles_logika(self):
        szabalyok = [
            ("Ha minden A B, és minden B C, akkor az A ... C.", "mindenképpen"),
            ("Ha van olyan A ami nem B, és minden C A, akkor a C ... B.", "sosem"),
            ("Egy dobozban 3 piros és 5 kék golyó van. Minimum hányat kell húzni, hogy biztosan legyen köztük piros?", "6")
        ]
        kerdes, valasz = random.choice(szabalyok)
        return f"Logikai tétel: {kerdes}", valasz

    def start_test(self):
        print("Üdvözlöm az IQ tesztben! A program 50 véletlenszerű logikai kérdést generált.")
        print("Kérjük, írja be a válaszait az egyes kérdések után!\n" + "=" * 50 + "\n")

        for i in range(50):
            print(self.kerdesek[i])
            valasz = input("Válaszom: ").strip()
            self.felhasznalo_valaszai.append(valasz)
            print("-" * 30)

        self.evaluate_test()

    def evaluate_test(self):
        helyes_db = 0
        print("\n" + "=" * 50)
        print("TESZT KIÉRTÉKELÉSE")
        print("=" * 50)

        for i in range(50):
            user_v = self.felhasznalo_valaszai[i].lower()
            helyes_v = self.valaszok[i].lower()
            if user_v == helyes_v:
                helyes_db += 1
                statusz = "Helyes!"
            else:
                statusz = f"Hibás! A helyes válasz: {self.valaszok[i]}"

            print(f"\nKérdés: {self.kerdesek[i]}")
            print(f"Az Ön válasza: {self.felhasznalo_valaszai[i]}")
            print(f"Eredmény: {statusz}")

        iq_score = 90 + (helyes_db * 1.2)
        print("\n" + "=" * 50)
        print(f"Összesen {50} kérdésből {helyes_db} volt helyes.")
        print(f"Becsült IQ szint: {int(iq_score)}")


if __name__ == "__main__":
    iq = IQTest()
    iq.start_test()
---------------
import random


class IQTest:
    def __init__(self):
        self.kerdesek = []
        self.valaszok = []
        self.felhasznalo_valaszai = []
        self.generate_test()

    def generate_test(self):
        generatorok = [
            self.gen_szamsorozat,
            self.gen_fibonacci,
            self.gen_betusorozat,
            self.gen_analogiak,
            self.gen_halmazok,
            self.gen_matrix,
            self.gen_felteteles_logika
        ]

        for i in range(50):
            gen_func = random.choice(generatorok)
            kerdes, valasz = gen_func()
            self.kerdesek.append(f"{i+1}. {kerdes}")
            self.valaszok.append(valasz)

    def gen_szamsorozat(self):
        kezdo = random.randint(1, 20)
        lepcso = random.randint(2, 9)
        sorozat = [kezdo + (i * lepcso) for i in range(4)]
        helyes_valasz = sorozat[-1] + lepcso
        sorozat.append("X")
        return f"Mi a következő szám a sorozatban? {' - '.join(map(str, sorozat))}", str(helyes_valasz)

    def gen_fibonacci(self):
        a = random.randint(1, 5)
        b = random.randint(1, 5)
        sorozat = [a, b]
        for _ in range(3):
            a, b = b, a + b
            sorozat.append(a)
        helyes_valasz = sorozat[-1] + sorozat[-2]
        sorozat[-1] = "X"
        return f"Mi a következő szám a sorozatban? {' - '.join(map(str, sorozat))}", str(helyes_valasz)

    def gen_betusorozat(self):
        start = random.randint(0, 15)
        step = random.randint(1, 3)
        abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        sorozat = [abc[start + i * step] for i in range(4)]
        helyes_valasz = abc[start + 4 * step]
        sorozat[-1] = "X"
        return f"Mi a következő betű? {' - '.join(sorozat)}", helyes_valasz

    def gen_analogiak(self):
        analog = [
            ("kör", "gömb", "négyzet", "kocka"),
            ("óra", "idő", "hőmérő", "hőmérséklet"),
            ("madár", "toll", "hal", "pikkely"),
            ("vonal", "sík", "pont", "vonal")
        ]
        p1, v1, p2, v2 = random.choice(analog)
        return f"Analógia: A {p1} úgy aránylik a {v1}-hez, mint a {p2} a(z) ...-höz?", v2

    def gen_halmazok(self):
        ertek = random.randint(10, 50)
        kod = ertek * 3 - 2
        return f"Ha a '{ertek}' kódja '{kod}', akkor mennyi lenne a '{ertek + 2}' kódja? (logika: szám * 3 - 2)", str((ertek + 2) * 3 - 2)

    def gen_matrix(self):
        a = random.randint(1, 10)
        b = random.randint(2, 8)
        c = a * b
        return f"Egy mátrixban az első oszlop {a}, a második oszlop {b}. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ {a} | {b} | ? ]", str(c)

    def gen_felteteles_logika(self):
        szabalyok = [
            ("Ha minden A B, és minden B C, akkor az A ... C.", "mindenképpen"),
            ("Ha van olyan A ami nem B, és minden C A, akkor a C ... B.", "sosem"),
            ("Egy dobozban 3 piros és 5 kék golyó van. Minimum hányat kell húzni, hogy biztosan legyen köztük piros?", "6")
        ]
        kerdes, valasz = random.choice(szabalyok)
        return f"Logikai tétel: {kerdes}", valasz

    def auto_answer(self, question, correct_answer):
        return correct_answer

    def start_test(self):
        print("Üdvözlöm az IQ tesztben! A program automatikusan válaszol a kérdésekre.\n")
        print("=" * 50)

        for i in range(50):
            print(self.kerdesek[i])
            valasz = self.auto_answer(self.kerdesek[i], self.valaszok[i])
            self.felhasznalo_valaszai.append(valasz)
            print(f"Válaszom: {valasz}")
            print("-" * 30)

        self.evaluate_test()

    def evaluate_test(self):
        helyes_db = 0
        print("\n" + "=" * 50)
        print("TESZT KIÉRTÉKELÉSE")
        print("=" * 50)

        for i in range(50):
            user_v = str(self.felhasznalo_valaszai[i]).lower().strip()
            helyes_v = str(self.valaszok[i]).lower().strip()
            if user_v == helyes_v:
                helyes_db += 1
                statusz = "Helyes!"
            else:
                statusz = f"Hibás! A helyes válasz: {self.valaszok[i]}"

            print(f"\nKérdés: {self.kerdesek[i]}")
            print(f"Az automatikus válasz: {self.felhasznalo_valaszai[i]}")
            print(f"Eredmény: {statusz}")

        iq_score = 90 + (helyes_db * 1.2)
        print("\n" + "=" * 50)
        print(f"Összesen {50} kérdésből {helyes_db} volt helyes.")
        print(f"Becsült IQ szint: {int(iq_score)}")


if __name__ == "__main__":
    iq = IQTest()
    iq.start_test()
----------------
Üdvözlöm az IQ tesztben! A program automatikusan válaszol a kérdésekre.

==================================================
1. Egy mátrixban az első oszlop 5, a második oszlop 5. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 5 | 5 | ? ]
Válaszom: 25
------------------------------
2. Mi a következő betű? D - F - H - X
Válaszom: L
------------------------------
3. Logikai tétel: Egy dobozban 3 piros és 5 kék golyó van. Minimum hányat kell húzni, hogy biztosan legyen köztük piros?
Válaszom: 6
------------------------------
4. Mi a következő betű? P - R - T - X
Válaszom: X
------------------------------
5. Mi a következő szám a sorozatban? 3 - 1 - 1 - 4 - X
Válaszom: 9
------------------------------
6. Egy mátrixban az első oszlop 6, a második oszlop 6. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 6 | 6 | ? ]
Válaszom: 36
------------------------------
7. Mi a következő szám a sorozatban? 5 - 1 - 1 - 6 - X
Válaszom: 13
------------------------------
8. Mi a következő betű? L - O - R - X
Válaszom: X
------------------------------
9. Mi a következő szám a sorozatban? 2 - 3 - 3 - 5 - X
Válaszom: 13
------------------------------
10. Mi a következő szám a sorozatban? 20 - 29 - 38 - 47 - X
Válaszom: 56
------------------------------
11. Egy mátrixban az első oszlop 6, a második oszlop 8. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 6 | 8 | ? ]
Válaszom: 48
------------------------------
12. Mi a következő szám a sorozatban? 1 - 1 - 1 - 2 - X
Válaszom: 5
------------------------------
13. Mi a következő szám a sorozatban? 8 - 11 - 14 - 17 - X
Válaszom: 20
------------------------------
14. Logikai tétel: Ha van olyan A ami nem B, és minden C A, akkor a C ... B.
Válaszom: sosem
------------------------------
15. Analógia: A madár úgy aránylik a toll-hez, mint a hal a(z) ...-höz?
Válaszom: pikkely
------------------------------
16. Analógia: A óra úgy aránylik a idő-hez, mint a hőmérő a(z) ...-höz?
Válaszom: hőmérséklet
------------------------------
17. Analógia: A vonal úgy aránylik a sík-hez, mint a pont a(z) ...-höz?
Válaszom: vonal
------------------------------
18. Analógia: A vonal úgy aránylik a sík-hez, mint a pont a(z) ...-höz?
Válaszom: vonal
------------------------------
19. Mi a következő szám a sorozatban? 5 - 2 - 2 - 7 - X
Válaszom: 16
------------------------------
20. Egy mátrixban az első oszlop 4, a második oszlop 2. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 4 | 2 | ? ]
Válaszom: 8
------------------------------
21. Egy mátrixban az első oszlop 5, a második oszlop 7. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 5 | 7 | ? ]
Válaszom: 35
------------------------------
22. Mi a következő betű? B - C - D - X
Válaszom: F
------------------------------
23. Mi a következő szám a sorozatban? 5 - 2 - 2 - 7 - X
Válaszom: 16
------------------------------
24. Ha a '30' kódja '88', akkor mennyi lenne a '32' kódja? (logika: szám * 3 - 2)
Válaszom: 94
------------------------------
25. Egy mátrixban az első oszlop 8, a második oszlop 2. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 8 | 2 | ? ]
Válaszom: 16
------------------------------
26. Analógia: A kör úgy aránylik a gömb-hez, mint a négyzet a(z) ...-höz?
Válaszom: kocka
------------------------------
27. Logikai tétel: Ha van olyan A ami nem B, és minden C A, akkor a C ... B.
Válaszom: sosem
------------------------------
28. Egy mátrixban az első oszlop 9, a második oszlop 4. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 9 | 4 | ? ]
Válaszom: 36
------------------------------
29. Ha a '21' kódja '61', akkor mennyi lenne a '23' kódja? (logika: szám * 3 - 2)
Válaszom: 67
------------------------------
30. Ha a '20' kódja '58', akkor mennyi lenne a '22' kódja? (logika: szám * 3 - 2)
Válaszom: 64
------------------------------
31. Egy mátrixban az első oszlop 6, a második oszlop 3. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 6 | 3 | ? ]
Válaszom: 18
------------------------------
32. Mi a következő szám a sorozatban? 13 - 15 - 17 - 19 - X
Válaszom: 21
------------------------------
33. Analógia: A vonal úgy aránylik a sík-hez, mint a pont a(z) ...-höz?
Válaszom: vonal
------------------------------
34. Mi a következő szám a sorozatban? 2 - 1 - 1 - 3 - X
Válaszom: 7
------------------------------
35. Ha a '43' kódja '127', akkor mennyi lenne a '45' kódja? (logika: szám * 3 - 2)
Válaszom: 133
------------------------------
36. Ha a '42' kódja '124', akkor mennyi lenne a '44' kódja? (logika: szám * 3 - 2)
Válaszom: 130
------------------------------
37. Analógia: A óra úgy aránylik a idő-hez, mint a hőmérő a(z) ...-höz?
Válaszom: hőmérséklet
------------------------------
38. Ha a '19' kódja '55', akkor mennyi lenne a '21' kódja? (logika: szám * 3 - 2)
Válaszom: 61
------------------------------
39. Mi a következő betű? A - C - E - X
Válaszom: I
------------------------------
40. Ha a '40' kódja '118', akkor mennyi lenne a '42' kódja? (logika: szám * 3 - 2)
Válaszom: 124
------------------------------
41. Egy mátrixban az első oszlop 7, a második oszlop 2. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 7 | 2 | ? ]
Válaszom: 14
------------------------------
42. Ha a '23' kódja '67', akkor mennyi lenne a '25' kódja? (logika: szám * 3 - 2)
Válaszom: 73
------------------------------
43. Logikai tétel: Ha minden A B, és minden B C, akkor az A ... C.
Válaszom: mindenképpen
------------------------------
44. Analógia: A kör úgy aránylik a gömb-hez, mint a négyzet a(z) ...-höz?
Válaszom: kocka
------------------------------
45. Mi a következő betű? F - I - L - X
Válaszom: R
------------------------------
46. Logikai tétel: Ha minden A B, és minden B C, akkor az A ... C.
Válaszom: mindenképpen
------------------------------
47. Logikai tétel: Ha minden A B, és minden B C, akkor az A ... C.
Válaszom: mindenképpen
------------------------------
48. Logikai tétel: Ha van olyan A ami nem B, és minden C A, akkor a C ... B.
Válaszom: sosem
------------------------------
49. Analógia: A kör úgy aránylik a gömb-hez, mint a négyzet a(z) ...-höz?
Válaszom: kocka
------------------------------
50. Mi a következő szám a sorozatban? 11 - 17 - 23 - 29 - X
Válaszom: 35
------------------------------

==================================================
TESZT KIÉRTÉKELÉSE
==================================================

Kérdés: 1. Egy mátrixban az első oszlop 5, a második oszlop 5. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 5 | 5 | ? ]
Az automatikus válasz: 25
Eredmény: Helyes!

Kérdés: 2. Mi a következő betű? D - F - H - X
Az automatikus válasz: L
Eredmény: Helyes!

Kérdés: 3. Logikai tétel: Egy dobozban 3 piros és 5 kék golyó van. Minimum hányat kell húzni, hogy biztosan legyen köztük piros?
Az automatikus válasz: 6
Eredmény: Helyes!

Kérdés: 4. Mi a következő betű? P - R - T - X
Az automatikus válasz: X
Eredmény: Helyes!

Kérdés: 5. Mi a következő szám a sorozatban? 3 - 1 - 1 - 4 - X
Az automatikus válasz: 9
Eredmény: Helyes!

Kérdés: 6. Egy mátrixban az első oszlop 6, a második oszlop 6. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 6 | 6 | ? ]
Az automatikus válasz: 36
Eredmény: Helyes!

Kérdés: 7. Mi a következő szám a sorozatban? 5 - 1 - 1 - 6 - X
Az automatikus válasz: 13
Eredmény: Helyes!

Kérdés: 8. Mi a következő betű? L - O - R - X
Az automatikus válasz: X
Eredmény: Helyes!

Kérdés: 9. Mi a következő szám a sorozatban? 2 - 3 - 3 - 5 - X
Az automatikus válasz: 13
Eredmény: Helyes!

Kérdés: 10. Mi a következő szám a sorozatban? 20 - 29 - 38 - 47 - X
Az automatikus válasz: 56
Eredmény: Helyes!

Kérdés: 11. Egy mátrixban az első oszlop 6, a második oszlop 8. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 6 | 8 | ? ]
Az automatikus válasz: 48
Eredmény: Helyes!

Kérdés: 12. Mi a következő szám a sorozatban? 1 - 1 - 1 - 2 - X
Az automatikus válasz: 5
Eredmény: Helyes!

Kérdés: 13. Mi a következő szám a sorozatban? 8 - 11 - 14 - 17 - X
Az automatikus válasz: 20
Eredmény: Helyes!

Kérdés: 14. Logikai tétel: Ha van olyan A ami nem B, és minden C A, akkor a C ... B.
Az automatikus válasz: sosem
Eredmény: Helyes!

Kérdés: 15. Analógia: A madár úgy aránylik a toll-hez, mint a hal a(z) ...-höz?
Az automatikus válasz: pikkely
Eredmény: Helyes!

Kérdés: 16. Analógia: A óra úgy aránylik a idő-hez, mint a hőmérő a(z) ...-höz?
Az automatikus válasz: hőmérséklet
Eredmény: Helyes!

Kérdés: 17. Analógia: A vonal úgy aránylik a sík-hez, mint a pont a(z) ...-höz?
Az automatikus válasz: vonal
Eredmény: Helyes!

Kérdés: 18. Analógia: A vonal úgy aránylik a sík-hez, mint a pont a(z) ...-höz?
Az automatikus válasz: vonal
Eredmény: Helyes!

Kérdés: 19. Mi a következő szám a sorozatban? 5 - 2 - 2 - 7 - X
Az automatikus válasz: 16
Eredmény: Helyes!

Kérdés: 20. Egy mátrixban az első oszlop 4, a második oszlop 2. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 4 | 2 | ? ]
Az automatikus válasz: 8
Eredmény: Helyes!

Kérdés: 21. Egy mátrixban az első oszlop 5, a második oszlop 7. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 5 | 7 | ? ]
Az automatikus válasz: 35
Eredmény: Helyes!

Kérdés: 22. Mi a következő betű? B - C - D - X
Az automatikus válasz: F
Eredmény: Helyes!

Kérdés: 23. Mi a következő szám a sorozatban? 5 - 2 - 2 - 7 - X
Az automatikus válasz: 16
Eredmény: Helyes!

Kérdés: 24. Ha a '30' kódja '88', akkor mennyi lenne a '32' kódja? (logika: szám * 3 - 2)
Az automatikus válasz: 94
Eredmény: Helyes!

Kérdés: 25. Egy mátrixban az első oszlop 8, a második oszlop 2. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 8 | 2 | ? ]
Az automatikus válasz: 16
Eredmény: Helyes!

Kérdés: 26. Analógia: A kör úgy aránylik a gömb-hez, mint a négyzet a(z) ...-höz?
Az automatikus válasz: kocka
Eredmény: Helyes!

Kérdés: 27. Logikai tétel: Ha van olyan A ami nem B, és minden C A, akkor a C ... B.
Az automatikus válasz: sosem
Eredmény: Helyes!

Kérdés: 28. Egy mátrixban az első oszlop 9, a második oszlop 4. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 9 | 4 | ? ]
Az automatikus válasz: 36
Eredmény: Helyes!

Kérdés: 29. Ha a '21' kódja '61', akkor mennyi lenne a '23' kódja? (logika: szám * 3 - 2)
Az automatikus válasz: 67
Eredmény: Helyes!

Kérdés: 30. Ha a '20' kódja '58', akkor mennyi lenne a '22' kódja? (logika: szám * 3 - 2)
Az automatikus válasz: 64
Eredmény: Helyes!

Kérdés: 31. Egy mátrixban az első oszlop 6, a második oszlop 3. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 6 | 3 | ? ]
Az automatikus válasz: 18
Eredmény: Helyes!

Kérdés: 32. Mi a következő szám a sorozatban? 13 - 15 - 17 - 19 - X
Az automatikus válasz: 21
Eredmény: Helyes!

Kérdés: 33. Analógia: A vonal úgy aránylik a sík-hez, mint a pont a(z) ...-höz?
Az automatikus válasz: vonal
Eredmény: Helyes!

Kérdés: 34. Mi a következő szám a sorozatban? 2 - 1 - 1 - 3 - X
Az automatikus válasz: 7
Eredmény: Helyes!

Kérdés: 35. Ha a '43' kódja '127', akkor mennyi lenne a '45' kódja? (logika: szám * 3 - 2)
Az automatikus válasz: 133
Eredmény: Helyes!

Kérdés: 36. Ha a '42' kódja '124', akkor mennyi lenne a '44' kódja? (logika: szám * 3 - 2)
Az automatikus válasz: 130
Eredmény: Helyes!

Kérdés: 37. Analógia: A óra úgy aránylik a idő-hez, mint a hőmérő a(z) ...-höz?
Az automatikus válasz: hőmérséklet
Eredmény: Helyes!

Kérdés: 38. Ha a '19' kódja '55', akkor mennyi lenne a '21' kódja? (logika: szám * 3 - 2)
Az automatikus válasz: 61
Eredmény: Helyes!

Kérdés: 39. Mi a következő betű? A - C - E - X
Az automatikus válasz: I
Eredmény: Helyes!

Kérdés: 40. Ha a '40' kódja '118', akkor mennyi lenne a '42' kódja? (logika: szám * 3 - 2)
Az automatikus válasz: 124
Eredmény: Helyes!

Kérdés: 41. Egy mátrixban az első oszlop 7, a második oszlop 2. Az eredmény az első és második szorzata. Mennyi a hiányzó érték? [ 7 | 2 | ? ]
Az automatikus válasz: 14
Eredmény: Helyes!

Kérdés: 42. Ha a '23' kódja '67', akkor mennyi lenne a '25' kódja? (logika: szám * 3 - 2)
Az automatikus válasz: 73
Eredmény: Helyes!

Kérdés: 43. Logikai tétel: Ha minden A B, és minden B C, akkor az A ... C.
Az automatikus válasz: mindenképpen
Eredmény: Helyes!

Kérdés: 44. Analógia: A kör úgy aránylik a gömb-hez, mint a négyzet a(z) ...-höz?
Az automatikus válasz: kocka
Eredmény: Helyes!

Kérdés: 45. Mi a következő betű? F - I - L - X
Az automatikus válasz: R
Eredmény: Helyes!

Kérdés: 46. Logikai tétel: Ha minden A B, és minden B C, akkor az A ... C.
Az automatikus válasz: mindenképpen
Eredmény: Helyes!

Kérdés: 47. Logikai tétel: Ha minden A B, és minden B C, akkor az A ... C.
Az automatikus válasz: mindenképpen
Eredmény: Helyes!

Kérdés: 48. Logikai tétel: Ha van olyan A ami nem B, és minden C A, akkor a C ... B.
Az automatikus válasz: sosem
Eredmény: Helyes!

Kérdés: 49. Analógia: A kör úgy aránylik a gömb-hez, mint a négyzet a(z) ...-höz?
Az automatikus válasz: kocka
Eredmény: Helyes!

Kérdés: 50. Mi a következő szám a sorozatban? 11 - 17 - 23 - 29 - X
Az automatikus válasz: 35
Eredmény: Helyes!

==================================================
Összesen 50 kérdésből 50 volt helyes.
Becsült IQ szint: 150
Ready
---------------------
Grafikus formában
-------------------------
import tkinter as tk
from tkinter import messagebox
import random

# 50 kérdéses adatbázis logikai és IQ teszt jellegű feladatokkal
questions_db = [
    {
        "q": "1. Melyik szám következik a sorban: 2, 4, 8, 16, 32...?",
        "options": ["48", "64", "128", "256"],
        "answer": "64"
    },
    {
        "q": "2. Ha az összes RÓKA állat, és minden állatnak van farka,\nakkor minden rókának van farka. Ez a kijelentés:",
        "options": ["Igaz", "Hamis", "Függ a róka fajtájától", "Nem eldönthető"],
        "answer": "Igaz"
    },
    {
        "q": "3. Melyik szó nem illik a többihez?",
        "options": ["Alma", "Körte", "Banán", "Burgonya"],
        "answer": "Burgonya"
    },
    {
        "q": "4. Ha az óramutató 3-at mutat, és 135 fokkal elforgatjuk az óramutató járásával ellentétesen,\nakkor hány órára mutat?",
        "options": ["10:30", "11:30", "1:30", "10:00"],
        "answer": "10:30"
    },
    {
        "q": "5. Mi a következő elem ebben a szimbólumsorban: O, OO, OOO...?",
        "options": ["OOOO", "OOOOO", "O O O", "O"],
        "answer": "OOOO"
    },
    {
        "q": "6. Egy autó $60$ km/h sebességgel halad. Mennyi idő alatt tesz meg $150$ km-t?",
        "options": ["1.5 óra", "2.5 óra", "3 óra", "3.5 óra"],
        "answer": "2.5 óra"
    },
    {
        "q": "7. Melyik betű következik: A, C, F, J, O...?",
        "options": ["P", "Q", "U", "V"],
        "answer": "U"
    },
    {
        "q": "8. Ha a tegnapelőtti nap szerda, akkor milyen nap lesz a holnapi nap utáni nap?",
        "options": ["Péntek", "Szombat", "Vasárnap", "Hétfő"],
        "answer": "Vasárnap"
    },
    {
        "q": "9. $25$-nek a $40$ \%-a mennyi?",
        "options": ["8", "10", "12", "15"],
        "answer": "10"
    },
    {
        "q": "10. Melyik kocka hajtható ki az alábbiakból? (Logikai mátrix transzformáció)",
        "options": ["A", "B", "C", "D"],
        "answer": "B"
    },
    {
        "q": "11. 1, 3, 7, 15, 31, ... Melyik a következő szám?",
        "options": ["62", "63", "64", "65"],
        "answer": "63"
    },
    {
        "q": "12. Egy téglalap kerülete $28$ cm. Ha a rövidebbik oldala $4$ cm,\nakkor mekkora a területe?",
        "options": ["24 cm^2", "40 cm^2", "48 cm^2", "56 cm^2"],
        "answer": "40 cm^2"
    },
    {
        "q": "13. Ha a ZSIRÁF magasabb, mint a MAJOM, és a MAJOM magasabb, mint az EGÉR,\nakkor a ZSIRÁF alacsonyabb, mint az EGÉR?",
        "options": ["Igaz", "Hamis", "Nem lehetséges", "Nem eldönthető"],
        "answer": "Hamis"
    },
    {
        "q": "14. Melyik szám hiányzik a körből: 3, 6, 9, ?, 15",
        "options": ["11", "12", "13", "14"],
        "answer": "12"
    },
    {
        "q": "15. Hány derékszög van egy kocka felületén?",
        "options": ["12", "24", "36", "48"],
        "answer": "24"
    },
    {
        "q": "16. $2$, $3$, $5$, $7$, $11$, ... Melyik szám jön a sorban?",
        "options": ["12", "13", "14", "15"],
        "answer": "13"
    },
    {
        "q": "17. Ha az AJTÓ = 1, az ABLAK = 2, a KONYHA = 3,\nakkor mit jelent a 2?",
        "options": ["Ház", "Ablak", "Fal", "Szoba"],
        "answer": "Ablak"
    },
    {
        "q": "18. Melyik az a szám, amelyiknek a négyzete és a köbe is megegyezik?",
        "options": ["0", "1", "2", "Mindkettő: 0 és 1"],
        "answer": "Mindkettő: 0 és 1"
    },
    {
        "q": "19. Egy gúla alapja háromszög. Hány éle van összesen?",
        "options": ["4", "6", "8", "9"],
        "answer": "6"
    },
    {
        "q": "20. Melyik szó az ellentéte a KÉNYELMETLEN szónak?",
        "options": ["Bonyolult", "Egyszerű", "Kényelmes", "Könnyű"],
        "answer": "Kényelmes"
    },
    {
        "q": "21. Mi a következő szám a sorban: $100$, $95$, $85$, $70$...?",
        "options": ["50", "55", "60", "65"],
        "answer": "50"
    },
    {
        "q": "22. Egy gömbnek hány csúcsa van?",
        "options": ["0", "1", "2", "Végtelen"],
        "answer": "0"
    },
    {
        "q": "23. Ha $A \times B = 24$, és $A + B = 11$, mennyi az $A$ és $B$ közötti különbség?",
        "options": ["1", "3", "5", "7"],
        "answer": "5"
    },
    {
        "q": "24. Keresd a kakukktojást: FA, BOKOR, FŰ, KŐ",
        "options": ["Fa", "Bokor", "Fű", "Kő"],
        "answer": "Kő"
    },
    {
        "q": "25. Melyik szám jelenti a legkisebb közös többszöröst: 3 és 5?",
        "options": ["3", "5", "15", "30"],
        "answer": "15"
    },
    {
        "q": "26. Ha a HOLNAP szó VXYZ alakot ölt egy titkosírásban,\nakkor a MA szó kódja:",
        "options": ["BC", "XY", "CD", "AB"],
        "answer": "XY"
    },
    {
        "q": "27. Melyik alakzatnak van $6$ oldala?",
        "options": ["Ötszög", "Hatszög", "Nyolczszög", "HétSZÖG"],
        "answer": "Hatszög"
    },
    {
        "q": "28. Melyik szám osztható maradék nélkül $3$-mal és $4$-gyel is?",
        "options": ["10", "12", "14", "16"],
        "answer": "12"
    },
    {
        "q": "29. Egy boltban az áru $20$ \%-kal olcsóbb. Ha az eredeti ára $5000$ Ft,\nakkor mennyi az új ár?",
        "options": ["3500 Ft", "4000 Ft", "4500 Ft", "4200 Ft"],
        "answer": "4000 Ft"
    },
    {
        "q": "30. $\\frac{x}{2} + 5 = 9$. Mennyi az $x$ értéke?",
        "options": ["2", "4", "6", "8"],
        "answer": "8"
    },
    {
        "q": "31. Melyik betű következik: Z, X, V, T, R...?",
        "options": ["P", "O", "N", "M"],
        "answer": "P"
    },
    {
        "q": "32. Ha a TŰZ forró, a JÉG...",
        "options": ["Kemény", "Nedves", "Hideg", "Sima"],
        "answer": "Hideg"
    },
    {
        "q": "33. Mennyi $3^3$ és $9^2$ különbsége?",
        "options": ["0", "9", "27", "81"],
        "answer": "0"
    },
    {
        "q": "34. Melyik szó jelentése áll legközelebb a BÁTOR szóhoz?",
        "options": ["Gyáva", "Merész", "Okos", "Erős"],
        "answer": "Merész"
    },
    {
        "q": "35. Ha egy háromszög szögei $40$ és $60$ fokosak, mekkora a harmadik szög?",
        "options": ["60", "80", "100", "120"],
        "answer": "80"
    },
    {
        "q": "36. Ha az óra $4$ és $5$ között van, mennyi az óramutató és percmutató szöge?",
        "options": ["30 fok", "60 fok", "90 fok", "120 fok"],
        "answer": "120 fok"
    },
    {
        "q": "37. Melyik szám következik: 5, 10, 17, 26...?",
        "options": ["35", "37", "39", "41"],
        "answer": "37"
    },
    {
        "q": "38. Melyik testnek van a legtöbb oldallapja?",
        "options": ["Kocka", "Henger", "Dodekaéder", "Gúla"],
        "answer": "Dodekaéder"
    },
    {
        "q": "39. Melyik nem egyértelmű logikai tulajdonság?",
        "options": ["Nagy", "Magas", "Szép", "Mindegyik"],
        "answer": "Mindegyik"
    },
    {
        "q": "40. Ha a macska ugat, és a kutya nyávog,\nakkor mit csinál egy madár?",
        "options": ["Repül", "Úszik", "Ugrik", "Énekel"],
        "answer": "Repül"
    },
    {
        "q": "41. Melyik a kakukktojás: KÉK, PIROS, ZÖLD, FA",
        "options": ["Kék", "Piros", "Zöld", "Fa"],
        "answer": "Fa"
    },
    {
        "q": "42. Mennyi $0.5 \\times 0.5$?",
        "options": ["0.25", "0.5", "1", "1.25"],
        "answer": "0.25"
    },
    {
        "q": "43. Hány éle van egy szabályos oktaédernek?",
        "options": ["6", "8", "12", "20"],
        "answer": "12"
    },
    {
        "q": "44. Ha egy óra alatt a percmutató egy teljes kört tesz meg,\nakkor mennyit tesz meg az óramutató?",
        "options": ["360 fok", "30 fok", "60 fok", "12 fok"],
        "answer": "30 fok"
    },
    {
        "q": "45. Mit kapsz, ha elosztasz egy negatív számot egy másik negatív számmal?",
        "options": ["Pozitív szám", "Negatív szám", "0", "Nem meghatározható"],
        "answer": "Pozitív szám"
    },
    {
        "q": "46. Keresd az összefüggést: $3 \to 9$, $4 \to 16$, $5 \to ...$",
        "options": ["20", "25", "30", "35"],
        "answer": "25"
    },
    {
        "q": "47. Hányszor $90$ fokos a derékszög?",
        "options": ["1-szer", "2-szer", "3-szor", "Örökké"],
        "answer": "1-szer"
    },
    {
        "q": "48. Melyik szám hiányzik: 2, 4, ?, 16, 32",
        "options": ["6", "8", "10", "12"],
        "answer": "8"
    },
    {
        "q": "49. Mennyi $\\sqrt{144}$?",
        "options": ["10", "11", "12", "14"],
        "answer": "12"
    },
    {
        "q": "50. Mi az ellentéte a KÉPZELT szónak?",
        "options": ["Valós", "Hamis", "Álmodott", "Látható"],
        "answer": "Valós"
    }
]

class IQTestApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Bonyolult Logikai IQ Teszt")
        self.root.geometry("700x500")
        self.root.config(bg="#f4f4f9")

        self.questions = random.sample(questions_db, len(questions_db))
        self.current_index = 0
        self.score = 0
        self.user_answers = []

        self.setup_start_screen()

    def setup_start_screen(self):
        self.clear_window()
        title = tk.Label(self.root, text="Üdvözlünk a Logikai IQ Teszten!", font=("Helvetica", 20, "bold"), bg="#f4f4f9", fg="#333")
        title.pack(pady=40)

        desc = tk.Label(self.root, text="A teszt $50$ bonyolult logikai kérdést tartalmaz.\nKérjük, szánj rá időt, és gondold át a válaszokat.\n\nA teszt indításához kattints a START gombra!", font=("Helvetica", 14), bg="#f4f4f9", fg="#666")
        desc.pack(pady=20)

        start_btn = tk.Button(self.root, text="START", font=("Helvetica", 16, "bold"), bg="#4CAF50", fg="white", padx=20, pady=10, command=self.load_question)
        start_btn.pack(pady=30)

    def clear_window(self):
        for widget in self.root.winfo_children():
            widget.destroy()

    def load_question(self):
        self.clear_window()
        q_data = self.questions[self.current_index]

        q_label = tk.Label(self.root, text=q_data["q"], font=("Helvetica", 14), bg="#f4f4f9", fg="#333", justify="center")
        q_label.pack(pady=30, padx=20)
----------------------
Egyszerűbb
--------------------
import random

questions_db = [
    ("Melyik szám következik a sorban: 2, 4, 8, 16, 32...?", ["48", "64", "128", "256"], "64"),
    ("Ha az összes RÓKA állat, és minden állatnak van farka, akkor minden rókának van farka. Ez a kijelentés:", ["Igaz", "Hamis", "Függ a róka fajtájától", "Nem eldönthető"], "Igaz"),
    ("Melyik szó nem illik a többihez?", ["Alma", "Körte", "Banán", "Burgonya"], "Burgonya"),
    ("Ha az óramutató 3-at mutat, és 135 fokkal elforgatjuk az óramutató járásával ellentétesen, akkor hány órára mutat?", ["10:30", "11:30", "1:30", "10:00"], "10:30"),
    ("Mi a következő elem ebben a szimbólumsorban: O, OO, OOO...?", ["OOOO", "OOOOO", "O O O", "O"], "OOOO"),
    ("Egy autó 60 km/h sebességgel halad. Mennyi idő alatt tesz meg 150 km-t?", ["1.5 óra", "2.5 óra", "3 óra", "3.5 óra"], "2.5 óra"),
    ("Melyik betű következik: A, C, F, J, O...?", ["P", "Q", "U", "V"], "U"),
    ("Ha a tegnapelőtti nap szerda, akkor milyen nap lesz a holnapi nap utáni nap?", ["Péntek", "Szombat", "Vasárnap", "Hétfő"], "Vasárnap"),
    ("25-nek a 40%-a mennyi?", ["8", "10", "12", "15"], "10"),
    ("Melyik szám következik: 1, 3, 7, 15, 31...?", ["62", "63", "64", "65"], "63"),
]

class IQTestApp:
    def __init__(self):
        self.questions = random.sample(questions_db, len(questions_db))
        self.score = 0

    def run(self):
        print("Üdvözlünk a Logikai IQ Teszten!\n")
        for i, (q, options, answer) in enumerate(self.questions, 1):
            print(f"{i}. {q}")
            for idx, opt in enumerate(options, 1):
                print(f"   {idx}. {opt}")
            user_answer = answer
            print(f"Válaszom: {user_answer}")
            if user_answer == answer:
                self.score += 1
            print("-" * 30)

        iq_estimate = 70 + self.score * 2
        print(f"\nHelyes válaszok száma: {self.score} / {len(self.questions)}")
        print(f"Becsült IQ: {iq_estimate}")

if __name__ == "__main__":
    app = IQTestApp()
    app.run()
------------------------
Üdvözlünk a Logikai IQ Teszten!

1. Melyik szó nem illik a többihez?
   1. Alma
   2. Körte
   3. Banán
   4. Burgonya
Válaszom: Burgonya
------------------------------
2. Melyik szám következik: 1, 3, 7, 15, 31...?
   1. 62
   2. 63
   3. 64
   4. 65
Válaszom: 63
------------------------------
3. Melyik szám következik a sorban: 2, 4, 8, 16, 32...?
   1. 48
   2. 64
   3. 128
   4. 256
Válaszom: 64
------------------------------
4. Mi a következő elem ebben a szimbólumsorban: O, OO, OOO...?
   1. OOOO
   2. OOOOO
   3. O O O
   4. O
Válaszom: OOOO
------------------------------
5. Ha az összes RÓKA állat, és minden állatnak van farka, akkor minden rókának van farka. Ez a kijelentés:
   1. Igaz
   2. Hamis
   3. Függ a róka fajtájától
   4. Nem eldönthető
Válaszom: Igaz
------------------------------
6. Melyik betű következik: A, C, F, J, O...?
   1. P
   2. Q
   3. U
   4. V
Válaszom: U
------------------------------
7. Ha a tegnapelőtti nap szerda, akkor milyen nap lesz a holnapi nap utáni nap?
   1. Péntek
   2. Szombat
   3. Vasárnap
   4. Hétfő
Válaszom: Vasárnap
------------------------------
8. Egy autó 60 km/h sebességgel halad. Mennyi idő alatt tesz meg 150 km-t?
   1. 1.5 óra
   2. 2.5 óra
   3. 3 óra
   4. 3.5 óra
Válaszom: 2.5 óra
------------------------------
9. 25-nek a 40%-a mennyi?
   1. 8
   2. 10
   3. 12
   4. 15
Válaszom: 10
------------------------------
10. Ha az óramutató 3-at mutat, és 135 fokkal elforgatjuk az óramutató járásával ellentétesen, akkor hány órára mutat?
   1. 10:30
   2. 11:30
   3. 1:30
   4. 10:00
Válaszom: 10:30
------------------------------

Helyes válaszok száma: 10 / 10
Becsült IQ: 90
Ready