26.1. Napisati aplikaciju za simulator bacanja kockice, sa statističkom analizom bacanja.
Opis rješenja:
- roll_dice funkcija:
- Simulira bacanje kockice koristeći random.randint(1, 6), što generira nasumičan broj od 1 do 6.
- simulate_rolls funkcija:
- Simulira više bacanja kockice i koristi defaultdict za praćenje koliko se puta svaki broj pojavio.
- display_stats funkcija:
- Prikazuje statistiku bacanja, uključujući broj pojavljivanja i postotak za svaki broj (1-6).
- main funkcija:
- Omogućuje korisniku da unese broj bacanja kockice.
- Poziva funkcije za simulaciju i prikaz statistike.
- Pita korisnika želi li ponovno pokrenuti simulator.
Listing programa:
# 26011430
import random
from collections import defaultdict
def roll_dice():
"""Simulira bacanje kockice i vraća rezultat (broj od 1 do 6)."""
return random.randint(1, 6)
def simulate_rolls(num_rolls):
"""
Simulira više bacanja kockice i prikuplja statistiku.
:param num_rolls: Broj bacanja kockice.
:return: Rječnik sa statistikom (ključevi su brojevi 1-6, vrijednosti su broj pojavljivanja).
"""
stats = defaultdict(int) # Rječnik za praćenje broja pojavljivanja svakog broja
for _ in range(num_rolls):
result = roll_dice()
stats[result] += 1
return stats
def display_stats(stats, num_rolls):
"""
Prikazuje statistiku bacanja kockice.
:param stats: Rječnik sa statistikom.
:param num_rolls: Ukupan broj bacanja.
"""
print("\nStatistika bacanja kockice:")
print("----------------------------")
for number in sorted(stats.keys()):
count = stats[number]
percentage = (count / num_rolls) * 100
print(f"Broj {number}: {count} puta ({percentage:.2f}%)")
print("----------------------------")
def main():
print("Dobrodošli u simulator bacanja kockice!")
while True:
try:
num_rolls = int(input("Unesite broj bacanja kockice: "))
if num_rolls <= 0:
print("Broj bacanja mora biti veći od 0.")
continue
break
except ValueError:
print("Molimo unesite ispravan broj.")
stats = simulate_rolls(num_rolls)
display_stats(stats, num_rolls)
# Ponovno pokretanje
again = input("Želite li ponovno pokrenuti simulator? (da/ne): ").lower()
if again == 'da':
main()
else:
print("Hvala što ste koristili simulator bacanja kockice. Doviđenja!")
if __name__ == "__main__":
main()
Ispis na ekranu:
Dobrodošli u simulator bacanja kockice!
Unesite broj bacanja kockice: 1000
Statistika bacanja kockice:
----------------------------
Broj 1: 159 puta (15.90%)
Broj 2: 176 puta (17.60%)
Broj 3: 161 puta (16.10%)
Broj 4: 176 puta (17.60%)
Broj 5: 167 puta (16.70%)
Broj 6: 161 puta (16.10%)
----------------------------
Želite li ponovno pokrenuti simulator? (da/ne):
II izvršavanje
Dobrodošli u simulator bacanja kockice!
Unesite broj bacanja kockice: 1000
Statistika bacanja kockice:
----------------------------
Broj 1: 177 puta (17.70%)
Broj 2: 155 puta (15.50%)
Broj 3: 156 puta (15.60%)
Broj 4: 196 puta (19.60%)
Broj 5: 155 puta (15.50%)
Broj 6: 161 puta (16.10%)
----------------------------
Želite li ponovno pokrenuti simulator? (da/ne):
Daljnji rad:
Ispis na ekranu:

Index
|
 |