2026. június 15., hétfő

Monty Hall-paradoxon modellezése python programmal

import random

def jand_jatekok(kiserletek_szama):
    valtoztatas_nyeremeny = 0
    nem_valtoztatas_nyeremeny = 0

    for _ in range(kiserletek_szama):
        # Az ajtók: 1 = kecske, 2 = kecske, 3 = autó (a pozíciók mindegyik ciklusban véletlenszerűek)
        ajtok = ['kecske', 'kecske', 'autó']
        random.shuffle(ajtok)

        # A játékos választ egyet
        valasztas = random.choice([0, 1, 2])

        # A 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] != 'autó']
        kinyitott_ajto = random.choice(musorvezeto_lehetosegek)

        # Ha a játékos NEM változtat
        if ajtok[valasztas] == 'autó':
            nem_valtoztatas_nyeremeny += 1

        # Ha a játékos VÁLTOZTAT (az egyetlen megmaradó ajtóra)
        maradek_ajto = [i for i in range(3) if i != valasztas and i != kinyitott_ajto][0]
        if ajtok[maradek_ajto] == 'autó':
            valtoztatas_nyeremeny += 1

    return valtoztatas_nyeremeny, nem_valtoztatas_nyeremeny

# Szimuláció futtatása 10 000 játékkal
kiserletek = 10000
valtoztat, nem_valtoztat = jand_jatekok(kiserletek)

print(f"Eredmények {kiserletek} játék szimulációja után:")
print(f"Győzelmek aránya ajtócsere esetén:       {valtoztat / kiserletek:.2%}")
print(f"Győzelmek aránya csere NÉLKÜL:             {nem_valtoztat / kiserletek:.2%}")

Nincsenek megjegyzések:

Megjegyzés küldése