50 个具有挑战性的概率问题 [04/50]:尝试直至首次成功

news/2025/1/30 15:23:42/

一、说明

你好,我最近对与概率相关的问题产生了兴趣。我偶然发现了 Frederick Mosteller 所著的《五十个具有挑战性的概率问题及其解决方案》这本书。我认为创建一个系列来讨论这些可能作为面试问题出现的迷人问题会很有趣。每篇文章仅包含 1 个问题,使其成为一个总共 50 个部分的系列。让我们潜入并激活我们的脑细胞!

图片由作者使用 DALL-E 3 提供。

二、问题描述

        问:平均来说,需要掷骰子多少次才能得到 6?

        此问题的关键是贝努力实验的无限次尝试入手.通过二项式实验中的N\rightarrow \infty得得到次数的极限。这是一个传统思路,然而下文中的求解方式更加精彩。

三、解决方案讨论

        我们可以使用几何分布来模拟第一次成功之前的失败次数,因为实验可以进行无限次尝试直到成功。几何分布的假设是:

  • 所建模的现象是一系列独立试验。
  • 每次试验只有两种可能的结果,通常指定为成功(得到 6 分)或失败(未得到 6 分)。
  • 每次试验的成功概率p = 1/6都是相同的。

        可以证明,获得第一次成功的独立试验次数的预期值为1/p

        要证明这一点很简单。第一次试验成功的概率是p乘以1,剩余试验次数的成功概率是(1–p)乘以1 + 平均试验次数(额外 1 来解释第一次失败)。由于独立性假设,试验的平均次数不会改变。令平均试验次数为E[X]。然后我们有:

        E[X] = p * 1 + (1 — p) * (1 + E[X])

        求解这个方程,我们得到E[X] = 1/p。在我们的例子中,p是得到 6 的概率,即1/6,并且E[X] = 1/p = 6

因此,获得 6 所需的平均试验次数为 6。

四、相关Python代码 

import numpy as npn_simulations = 10000
n_first_success = 0for _ in range(n_simulations):success = Falsecount = 0while not success:count += 1roll = np.random.randint(1,7)if roll == 6:success = Truen_first_success += countprint(f'Average no. of trials needed to get a 6 = {round(n_first_success/n_simulations)}')# Outputs:
# Average no. of trials needed to get a 6 = 6

这就是这个 d️ie 🎲 问题的全部内容。欢迎任何反馈或问题!该代码可以在我的Github上找到。请继续关注本系列的下一部分!:)


http://www.ppmy.cn/news/1280681.html

相关文章

【adb】电脑通过ADB向手机设备传输文件

具体步骤如下: Step1 下载ADB工具 下载最新版本的 ADB工具 !!! 注意:一定要是最新版本的ADB,否则很可能导致无法识别到手机。 将下载的ADB解压以后的文件如下图所示: Step2 添加环境变量 将 ABD 的路径 D:\platformtools &am…

股市中的Santa Claus Rally (圣诞节行情)

圣诞节行情 Santa Claus Rally Santa Claus Rally 是指 12 月 25 日圣诞节前后股市的持续上涨这样一个现象。《股票交易员年鉴》的创始人 Yale Hirsch 于 1972 年创造了这个定义,他将当年最后五个交易日和次年前两个交易日的时间范围定义为反弹日期。 根据 CFRA Re…

蓝桥杯 1223 第 2 场 小白入门赛

蓝桥小课堂-平方和 模拟 1 2 2 2 3 2 ⋯ n 2 n ⋅ ( n 1 ) ⋅ ( 2 n 1 ) 6 1^22^23^2\cdotsn^2\dfrac{n\;\cdot\;(n 1)\;\cdot\;(2n1)}{6} 122232⋯n26n⋅(n1)⋅(2n1)​。 write(n * (n 1) * (n * 2 1) / 6);房顶漏水啦 m a x ( 最大的行 − 最小的行 , 最大的列 −…

3. 行为模式 - 迭代器模式

亦称: Iterator 意图 迭代器模式是一种行为设计模式, 让你能在不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素。 问题 集合是编程中最常使用的数据类型之一。 尽管如此, 集合只是一组对象的…

Crow:Middlewares 庖丁解牛5 context

Crow:Middlewares 庖丁解牛4 partial_context-CSDN博客 基于partial_context再来解释context namespace detail {template<typename... Middlewares>struct partial_context : public pop_back<Middlewares...>::template rebind<partial_context>, public…

pytorch——基于循环神经网络的情感分类

任务目标 基于给定数据集&#xff0c;进行数据预处理&#xff0c;搭建以LSTM为基本单元的模型&#xff0c;以Adam优化器对模型进行训练&#xff0c;使用训练后的模型进行预测并计算预测分类的准确率。 数据集信息 IMDB数据集是一个对电影评论标注为正向评论与负向评论的数据…

靠谱免费的MAC苹果电脑杀毒软件CleanMyMac X2024

您是否曾经为Mac电脑的性能下降、存储空间不足而烦恼&#xff1f;是否希望有一个简单而高效的解决方案来优化您的Mac系统&#xff1f;那么&#xff0c;我向您介绍一款非常出色的工具&#xff1a;CleanMyMac X。它能够轻松处理这些问题&#xff0c;并让您的Mac恢复到最佳状态。 …

变量的存储类型(storage class)

变量的存储类型(storage class) 对于变量的存储类型&#xff0c;前面遇到过一些疑惑&#xff0c;再简单的在这里说一下。存储类型是指存储变量值的内存类型&#xff0c;它用来决定存储空间的大小。变量的存储类型决定着变量的存储器和作用域。有三个地方可以用于存储变量&#…