使用 Python来模拟掷两个骰子的情况 统计点数分布的情况

目录

需求:

代码实现:

程序说明:

运行结果:


需求:

使用 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)

程序说明:

  1. roll_dice() 函数

    • 使用 random.randint(1, 6) 来模拟掷一个六面骰子的行为。
    • 返回两个骰子的点数之和。
  2. simulate_dice_rolls() 函数

    • 初始化一个字典 rolls_distribution 用于存储每种点数的出现频率。
    • 使用 for 循环来模拟掷骰子的过程,每次调用 roll_dice() 并更新相应的统计值。
    • 最终返回统计结果。
  3. 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

相关推荐
hpoenixf3 小时前
2026 年前端面试问什么
前端·面试
还是大剑师兰特3 小时前
Vue3 中的 defineExpose 完全指南
前端·javascript·vue.js
吴佳浩3 小时前
GPU 编号进阶:CUDA\_VISIBLE\_DEVICES、多进程与容器化陷阱
人工智能·pytorch·python
泯泷3 小时前
阶段一:从 0 看懂 JSVMP 架构,先在脑子里搭出一台最小 JSVM
前端·javascript·架构
大阿明3 小时前
Spring Boot(快速上手)
java·spring boot·后端
bearpping3 小时前
Java进阶,时间与日期,包装类,正则表达式
java
全栈凯哥3 小时前
18.Python中的导入类完全指南
python
邵奈一3 小时前
清明纪念·时光信笺——项目运行指南
java·实战·项目
mengchanmian4 小时前
前端node常用配置
前端
sunwenjian8864 小时前
Java进阶——IO 流
java·开发语言·python