# monty-hall-sim **Repository Path**: maxnirvana/monty-hall-sim ## Basic Information - **Project Name**: monty-hall-sim - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-15 - **Last Updated**: 2025-03-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 蒙提霍尔问题模拟器 这是一个基于 Rust 的命令行工具,用于模拟蒙提霍尔问题(Monty Hall Problem),一个基于游戏节目场景的概率谜题。该程序允许你配置模拟次数和门的数量。 ## 功能 - 可配置参数: - 模拟次数(默认:10,000 次) - 门的数量(默认:3 扇门) - 显示每次模拟的详细信息(默认:仅显示统计结果) - 核心逻辑: - 随机分配奖品所在的门。 - 模拟参赛者的初始选择。 - 打开一扇没有奖品的门(支持多门情况)。 - 根据策略模拟是否切换选择。 - 输出: - 总模拟次数。 - 坚持初始选择的胜率。 - 切换选择的胜率。 - 理论概率。 - 执行耗时。 - 代码质量: - 使用 Cargo 构建。 - 包含完整的错误处理。 - 代码文档注释。 - 核心逻辑的单元测试。 - 使用迭代器和 `rayon` 进行并行优化。 - 附加功能: - 支持多线程加速大规模模拟。 ## 安装 1. 确保已安装 Rust。如果未安装,请使用 [rustup](https://rustup.rs/) 安装: ```bash bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` 2. 克隆本仓库: ```bash bash git clone https://gitee.com/maxnirvana/monty-hall-sim cd monty-hall-sim ``` 3. 构建项目: ```bash bash cargo build --release ``` ## 使用 运行模拟器: ```bash bash ./target/release/monty-hall-sim --trials=100000000 --doors=3 ``` ### 命令行参数 | 选项 | 描述 | 默认值 | | :---------------- | :----------------------- | :----- | | `--trials`, `-t` | 模拟次数。 | 10,000 | | `--doors`, `-d` | 门的数量。 | 3 | | `--verbose`, `-v` | 显示每次模拟的详细信息。 | 关闭 | ### 示例输出 ``` 模拟100000000次3门问题结果: ┌───────────────┬─────────────┬──────────────┐ │ 策略 │ 获胜次数 │ 胜率 │ ├───────────────┼─────────────┼──────────────┤ │ 坚持初始选择 │ 33330012 │ 33.33% │ │ 切换选择 │ 66669988 │ 66.67% │ └───────────────┴─────────────┴──────────────┘ 理论概率: 坚持33.33% / 切换66.67% 执行耗时: 0.63秒 ``` ## 数学原理 蒙提霍尔问题展示了在经典的 3 门场景中,切换选择可以将获胜概率从 1/3 提高到 2/3。对于 `n` 扇门,坚持初始选择的获胜概率为 `1/n`,而切换选择的获胜概率为 `(n-1)/n`。 ## 测试 运行单元测试以验证核心逻辑: ```bash bash cargo test ``` ------ 快来体验蒙提霍尔问题的模拟吧!🚪🎁