From d09183c61c44df2b539b4c7b4f7dae8bc1f2c745 Mon Sep 17 00:00:00 2001 From: cdonahue Date: Thu, 13 Nov 2025 09:39:47 -0500 Subject: [PATCH] a problem you could solve, or a situation you could simulate using classes is a library system. --- dice_stats.py | 46 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/dice_stats.py b/dice_stats.py index 83a99cb..ec1d09f 100644 --- a/dice_stats.py +++ b/dice_stats.py @@ -18,6 +18,31 @@ class FiveDice: if face != 1: return False return True + + def 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 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 @@ -27,7 +52,24 @@ for trial in tqdm(range(trials)): if dice.all_ones(): successes += 1 -print(successes/trials) - +print(f"all ones + {successes/trials}") + +three_of_a_kind_successes = 0 +four_of_a_kind_successes = 0 + +for trial in tqdm(range(trials)): + dice.roll() + if dice.three_of_a_kind(): + three_of_a_kind_successes += 1 + +print(f"three of a kind: {three_of_a_kind_successes / trials}") + +for trial in tqdm(range(trials)): + dice.roll() + if dice.four_of_a_kind(): + four_of_a_kind_successes += 1 + +print(f"four of a kind: {four_of_a_kind_successes / trials}") +