目录
需求:
使用 Python来模拟掷两个骰子的情况 统计点数分布的情况
代码实现:
import random
def roll_dice():
"""模拟掷两个骰子的行为,并返回两个骰子的点数之和。"""
dice1 = random.randint(1, 6)
dice2 = random.randint(1, 6)
return dice1 + dice2
def simulate_dice_rolls(num_rolls=1000):
"""模拟掷两个骰子 num_rolls 次,并统计每种点数的分布情况。"""
# 初始化统计字典
rolls_distribution = {i: 0 for i in range(2, 13)}
# 模拟掷骰子
for _ in range(num_rolls):
roll_result = roll_dice()
rolls_distribution[roll_result] += 1
return rolls_distribution
def print_results_with_percentage(distribution, total_rolls):
"""打印每种点数的出现次数和百分比。"""
print("Point\tFrequency\tPercentage (%)")
for point, frequency in distribution.items():
percentage = (frequency / total_rolls) * 100
print(f"{point}\t{frequency}\t\t{percentage:.2f}")
if __name__ == "__main__":
# 模拟掷两个骰子 1000 次
num_rolls = 1000
results = simulate_dice_rolls(num_rolls)
print_results_with_percentage(results, num_rolls)
程序说明:
-
roll_dice() 函数:
- 使用
random.randint(1, 6)
来模拟掷一个六面骰子的行为。 - 返回两个骰子的点数之和。
- 使用
-
simulate_dice_rolls() 函数:
- 初始化一个字典
rolls_distribution
用于存储每种点数的出现频率。 - 使用
for
循环来模拟掷骰子的过程,每次调用roll_dice()
并更新相应的统计值。 - 最终返回统计结果。
- 初始化一个字典
-
print_results() 函数:
- 打印每种点数的出现次数。
运行结果:
Point Frequency Percentage (%)
2 27 2.70
3 50 5.00
4 98 9.80
5 111 11.10
6 142 14.20
7 171 17.10
8 140 14.00
9 112 11.20
10 74 7.40
11 52 5.20
12 23 2.30