#!/usr/bin/python3
import random	# Βιβλιοθήκη για τυχαίους αριθμούς
import statistics # Βιβλιοθήκη για στατιστικά (mean, median,stdev)

def roll_dice_stats(n):
	"""Ρίχνει το ζάρι n φόρες και εμφανίζει στατιστικά."""
	#Δημιουργούμε λίστα με n τυχαίους αριθμολυς από 1 έως 6
	rolls=[random.randint(1,6) for _ in range(n)]

	print(f"\n---Στατιστικά για {n} ρίψεις ---")
	#Υπολογισμός Μέσης Τιμής (Mean)
	print(f"Μέση τιμή (Mean): {statistics.mean(rolls):.2f}")
	try:
		#Υπολογισμός Διαμέσου (Median - η μεσαία τιμή αν τα βάλουμε στη σειρά)
		print(f"Διάμεσος (Median): {statistics.median(rolls)}")
		#Υπολογισμός Τυπικής Απόκλισης (Standard Deviation)
		print(f"Τυπική απόκλιση (Stdev): {statistics.stdev(rolls):.2f}")
	except statistics.StatisticsError:
		print("Δεν επαρκούν τα δεδομένα για τυπική απόκλιση (χρείαζονται τουλάχιστον 2).")

def simulation_three_sixes():
	"""Προσομοίωση: Πόσες ρίψεις μέχρι να έρθουν 3 συνεχόμενα εξάρια."""
	consecutive_sixes=0 # Μετρήτης συνεχόμενων εξάριων
	total_rolls=0	#Συνολικές ρίψεις

	#Επαναλαμβάνουμε μέχρι να πετύχουμε 3 συνεχόμενα
	while consecutive_sixes<3:
		roll=random.randint(1,6) # Ρίχνουμε ζάρι
		total_rolls += 1	#Αυξάνουμε τις συνολικές ρίψεις
		if roll==6:
			consecutive_sixes += 1 # Αν έφερε 6, αυξάνουμε το σερί
		else:
			consecutive_sixes=0 # Αν δεν έφερε 6, το σερί μηδενίζεται
	return total_rolls

def main():
	try:
		#Μέρος 1ο: Στατιστικά
		n=int(input("Δώσε πλήθος ρίψεων για τα στατιστικά: "))
		roll_dice_stats(n)

		#Μέρος 2ο: Πιθανότητα (Προσομοίωση)
		print("n\---Προσομοίωση 3 συνεχόμενων εξάριων ---")
		print("Υπολογισμός...", end="",flush=True)

		#Τρέχουμε το πείραμα πολλές φορές για να βρούμε μέσο όρο (προαιρετικά, για ακρίβεια)
		experiments=100
		total_counts=sum(simulation_three_sixes() for _ in range(experiments))
		average_rolls = total_counts / experiments

		print(f"\nΜέσο πλήθος ρίψωεν για να πετύχεις 3 εξάρια  (σε {experiments} πειράματα): {average_rolls}")

	except ValueERROR:
		print("Παρακαλώ δώσε ακέραιο αριθμό.")

if __name__=="__main__":
	main()

