Bevezetés a Random Modulba

Mi az a Random modul?

A Random modul a Python egyik beépített könyvtára, amely lehetővé teszi véletlenszerű számok generálását és véletlenszerű választások meghozatalát. Ez a modul nélkülözhetetlen olyan alkalmazásokban, ahol véletlenszerűségre van szükség, például játékokban, szimulációkban vagy adatok véletlenszerű mintavételezésében.

Véletlenszám generálás

Különböző típusú véletlen számok előállítása

Véletlenszerű választás

Elemek véletlenszerű kiválasztása listákból

Lista keverés

Listák elemeinek véletlenszerű átrendezése

A Random modul importálása

A random modul használatához először importálnunk kell azt a Python programunkba:

# A random modul importálása
import random

# Most már használhatjuk a random modul függvényeit
veletlenszam = random.random()  # 0 és 1 közötti lebegőpontos szám
print(veletlenszam)

Próbáld ki!

A véletlenszámok tulajdonságai

Nézzük meg, milyen tulajdonságai vannak a generált véletlenszámoknak:

# Generáljunk 10 véletlenszámot és vizsgáljuk meg őket
import random

# Lista a számok tárolásához
szamok = []

# 10 véletlenszám generálása
for _ in range(10):
    szam = random.random()
    szamok.append(szam)
    print(f"Generált szám: {szam:.4f}")

# Statisztikák kiszámítása
atlag = sum(szamok) / len(szamok)
minimum = min(szamok)
maximum = max(szamok)

print(f"\nStatisztikák:")
print(f"Átlag: {atlag:.4f}")
print(f"Minimum: {minimum:.4f}")
print(f"Maximum: {maximum:.4f}")

Generált számok eloszlása

Alap Függvények

random() - Lebegőpontos véletlenszám

A random() függvény 0.0 és 1.0 közötti lebegőpontos véletlenszámot generál (1.0 már nincs benne a tartományban).

# 0.0 és 1.0 közötti véletlenszámok generálása
import random

# Alap véletlenszám
szam = random.random()
print(f"Véletlenszám: {szam}")

# Példa: Véletlenszám skálázása más tartományra (pl. 1-10 között)
skalazott = 1 + (random.random() * 9)  # 1 és 10 közötti lebegőpontos szám
print(f"Skálázott véletlenszám: {skalazott}")

Próbáld ki!

randint() - Egész véletlenszám

A randint(a, b) függvény két szám közötti véletlenszerű egész számot generál, ahol mindkét határérték beletartozik a lehetséges értékek közé.

# Egész szám generálása megadott határok között
import random

# Dobókocka szimulálása (1-6 közötti szám)
dobas = random.randint(1, 6)
print(f"A dobókocka eredménye: {dobas}")

# Nagyobb tartomány (pl. 1-100)
szam = random.randint(1, 100)
print(f"Véletlenszám 1 és 100 között: {szam}")

Dobókocka szimuláció

1

choice() - Véletlenszerű elem kiválasztása

A choice() függvény egy véletlenszerű elemet választ ki egy listából vagy más sorozatból.

# Véletlenszerű elem kiválasztása listából
import random

szinek = ['piros', 'kék', 'zöld', 'sárga', 'fehér']
valasztott_szin = random.choice(szinek)
print(f"Véletlenszerűen választott szín: {valasztott_szin}")

gyumolcsok = ['alma', 'körte', 'banán', 'narancs']
valasztott_gyumolcs = random.choice(gyumolcsok)
print(f"Véletlenszerűen választott gyümölcs: {valasztott_gyumolcs}")

Lista elem választó

Gyakorlati Példák

Kő-Papír-Olló Játék

Egy egyszerű kő-papír-olló játék megvalósítása a random modul használatával:

# Kő-Papír-Olló játék
import random

lehetoseg = ["kő","papír","olló"]
gep = random.choice(lehetoseg)

felhasznalo = input("Mit választasz? Kő, papír vagy olló? ")

if gep == felhasznalo:
   print(f"A gép választása: {gep}, a te választásod: {felhasznalo}. Döntetlen!")
elif gep == "kő":
   if felhasznalo == "papír":
       print(f"A gép választása: {gep}. Nyertél!")
   else:
       print(f"A gép választása: {gep}. Vesztettél")
elif gep == "papír":
   if felhasznalo == "olló":
       print(f"A gép választása: {gep}. Nyertél!")
   else:
       print(f"A gép választása: {gep}. Vesztettél")
elif gep == "olló":
   if felhasznalo == "kő":
       print(f"A gép választása: {gep}. Nyertél!")
   else:
       print(f"A gép választása: {gep}. Vesztettél")
else:
   print("Hibás adatot adtál meg!")

Játssz a számítógép ellen!

Kincskereső Játék

Találd meg a kincset egy 5x5-ös területen! A program jelzi, hogy merre kell továbbmenni:

# Kincskereső játék
import random

# Véletlenszerű kincs helye (X, Y)
kincs_x = random.randint(1, 5)
kincs_y = random.randint(1, 5)

print("Találd meg a kincset egy 5x5-ös rácson!")

tipp_x = -1
tipp_y = -1
probalkozasok = 0

# Addig próbálkozik, amíg meg nem találja a kincset
while tipp_x != kincs_x or tipp_y != kincs_y:
   tipp_x = int(input("Add meg az X koordinátát (1-5): "))
   tipp_y = int(input("Add meg az Y koordinátát (1-5): "))
   probalkozasok += 1

   if tipp_x < kincs_x:
       print("A kincs jobbra van.")
   elif tipp_x > kincs_x:
       print("A kincs balra van.")

   if tipp_y < kincs_y:
       print("A kincs feljebb van.")
   elif tipp_y > kincs_y:
       print("A kincs lejjebb van.")

print(f"Gratulálok! Megtaláltad a kincset {probalkozasok} próbálkozás után!")

Keresd meg a kincset!

Próbálkozások száma: 0