From 8cacbb0f2e59a2e7a02e82c4b3438b07cbdcb47e Mon Sep 17 00:00:00 2001 From: jbayati Date: Thu, 13 Nov 2025 09:39:48 -0500 Subject: [PATCH] a problem you could solve, or a situation you could simulate usuing classes is a library system. --- dice_stats.py | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/dice_stats.py b/dice_stats.py index 83a99cb..2709f8e 100644 --- a/dice_stats.py +++ b/dice_stats.py @@ -19,6 +19,31 @@ class FiveDice: return False return True + def is_three_of_a_kind(self): + face_counts = {} + for face in self.faces(): + if face in face_counts: + face_counts[face] += 1 + else: + face_counts[face] = 1 + for count in face_counts.values(): + if count >= 3: + return True + return False + + def is_four_of_a_kind(self): + face_counts = {} + for face in self.faces(): + if face in face_counts: + face_counts[face] += 1 + else: + face_counts[face] = 1 + for count in face_counts.values(): + if count >= 4: + return True + return False + + dice = FiveDice() successes = 0 trials = 1000000 @@ -26,8 +51,20 @@ for trial in tqdm(range(trials)): dice.roll() if dice.all_ones(): successes += 1 - -print(successes/trials) +print(f"Probability of all ones: {successes/trials}") +three_of_a_kind_successes = 0 +for trial in tqdm(range(trials)): + dice.roll() + if dice.is_three_of_a_kind(): + three_of_a_kind_successes += 1 +print(f"Probability of three of a kind: {three_of_a_kind_successes/trials}") + +four_of_a_kind_successes = 0 +for trial in tqdm(range(trials)): + dice.roll() + if dice.is_four_of_a_kind(): + four_of_a_kind_successes += 1 +print(f"Probability of four of a kind: {four_of_a_kind_successes/trials}")