2026. június 13., szombat

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

Nincsenek megjegyzések:

Megjegyzés küldése