Files
prj_mileage_draw/backend/test_probs.py
T
2026-05-01 08:34:32 +09:00

28 lines
718 B
Python

import random
PRIZES = [
{"rank": 1, "name": "1st Prize", "miles": 10000, "probability": 0.20},
{"rank": 2, "name": "2nd Prize", "miles": 5000, "probability": 0.30},
{"rank": 3, "name": "3rd Prize", "miles": 2000, "probability": 0.50},
]
def draw_prize():
rand_val = random.random()
cumulative = 0.0
for prize in PRIZES:
cumulative += prize["probability"]
if rand_val <= cumulative:
return prize
return PRIZES[-1]
counts = {1: 0, 2: 0, 3: 0}
trials = 100000
for _ in range(trials):
res = draw_prize()
counts[res["rank"]] += 1
print("Results for 100,000 trials:")
for rank, count in counts.items():
print(f"Rank {rank}: {count/trials*100:.2f}%")