fork(1) download
  1. import random
  2.  
  3. def coin_toss():
  4. """模拟掷硬币,返回正面或反面"""
  5. return random.choice(['正面', '反面'])
  6.  
  7. def main():
  8. # 设置试验参数
  9. total_runs = 5 # 总轮数
  10. tosses_per_run = 100 # 每轮掷硬币次数
  11.  
  12. # 初始化总体统计
  13. overall_heads = 0
  14. overall_tails = 0
  15.  
  16. print(f"将进行 {total_runs} 轮试验,每轮 {tosses_per_run} 次掷硬币\n")
  17.  
  18. for run in range(1, total_runs + 1):
  19. # 执行单轮试验
  20. heads_count = 0
  21. for _ in range(tosses_per_run):
  22. result = coin_toss()
  23. if result == '正面':
  24. heads_count += 1
  25.  
  26. tails_count = tosses_per_run - heads_count
  27.  
  28. # 更新总体统计
  29. overall_heads += heads_count
  30. overall_tails += tails_count
  31.  
  32. # 计算本轮比例
  33. heads_ratio = heads_count / tosses_per_run * 100
  34. tails_ratio = tails_count / tosses_per_run * 100
  35.  
  36. # 输出本轮结果
  37. print(f"第 {run} 轮结果:")
  38. print(f" 正面出现 {heads_count} 次 ({heads_ratio:.2f}%)")
  39. print(f" 反面出现 {tails_count} 次 ({tails_ratio:.2f}%)\n")
  40.  
  41. # 计算总体比例
  42. total_tosses = total_runs * tosses_per_run
  43. overall_heads_ratio = overall_heads / total_tosses * 100
  44. overall_tails_ratio = overall_tails / total_tosses * 100
  45.  
  46. # 输出总体结果
  47. print(f"===== 总体统计 =====")
  48. print(f"共掷硬币 {total_tosses} 次")
  49. print(f"正面出现 {overall_heads} 次 ({overall_heads_ratio:.2f}%)")
  50. print(f"反面出现 {overall_tails} 次 ({overall_tails_ratio:.2f}%)")
  51.  
  52. if __name__ == "__main__":
  53. main()
Success #stdin #stdout 0.02s 11584KB
stdin
Standard input is empty
stdout
将进行 5 轮试验,每轮 100 次掷硬币

第 1 轮结果:
  正面出现 65 次 (65.00%)
  反面出现 35 次 (35.00%)

第 2 轮结果:
  正面出现 42 次 (42.00%)
  反面出现 58 次 (58.00%)

第 3 轮结果:
  正面出现 45 次 (45.00%)
  反面出现 55 次 (55.00%)

第 4 轮结果:
  正面出现 56 次 (56.00%)
  反面出现 44 次 (44.00%)

第 5 轮结果:
  正面出现 52 次 (52.00%)
  反面出现 48 次 (48.00%)

===== 总体统计 =====
共掷硬币 500 次
正面出现 260 次 (52.00%)
反面出现 240 次 (48.00%)