[做初中数学题做到打起来了]跟同事为了他小孩的数学题杠上了

简介: 4只小鸭子在一个大的圆形水池中,分别随机的出现在圆圈中的任意一点。4只鸭子出现在同一个半圆内的概率是多少?本文将带领大家使用蒙特卡洛方法求解此题。

CSDN

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页: 小嗷犬的博客
🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
🥭本文内容:[做初中数学题做到打起来了]跟同事为了他小孩的数学题杠上了

1.前情提要

这是2019年 NGA 论坛上的一个帖子:
题目

帖子中提出了一个问题:4只小鸭子在一个大的圆形水池中,分别随机的出现在圆圈中的任意一点。4只鸭子出现在同一个半圆内的概率是多少?

这个问题当时分歧很大,各种答案都有,笔者当时看的也是一头雾水。

好在笔者现在学会了如何使用21世纪最先进的计算工具1来进行计算,本文笔者将使用蒙特卡洛方法2来解决本题。


2.蒙特卡洛方法

蒙特卡洛方法解此题的思路为:每次在圆周上生成4只鸭子,统计 4只鸭子在同一半圆的次数与总次数的比例,即为4只鸭子出现在同一个半圆内的近似概率。

而是否在同一半圆则可以通过判断每只鸭子扫过半圆是否经过另外3只鸭子来判断。

所以我们可以得到以下代码:

代码

import numpy as np
from matplotlib import pyplot as plt

x = list(range(1, 10000))
y = []
for i in x:
    temp = 0
    for j in range(i):
        duck = np.sort(np.random.random((4)))
        temp += duck[0] + 0.5 > duck[3] or duck[1] - 0.5 > duck[0] \
            or duck[2] - 0.5 > duck[1] or duck[3] - 0.5 > duck[2]
    y.append(temp/i)

plt.plot(x, y)
plt.show()
通过增加随机次数,我们可以看到概率逐渐收敛到 $\frac{1}{2}$ :

概率估计图

理解起来有多种思路,这里我采用了我认为最好理解的一种:

  • 4只鸭子在水池中时,至少有3只会处于同一半圆3
  • 这时4只鸭子出现在同一个半圆内的概率完全取决于最后那只鸭子。

3.尾声

本题本质上还是个数学问题,可以通过微积分进行求解。

但是现实中,4只鸭子出现在同一个半圆内的概率则不大可能是 $\frac{1}{2}$。

毕竟鸭子是集群动物,4只鸭子在一起应该是常态,那么它们是否处于同一半圆则主要取决于水池的大小了。

你们认为本题的答案是多少呢?欢迎在评论区留言。


  1. 指计算机。
  2. 参见:https://blog.csdn.net/qq_63585949/article/details/126444753
  3. 不一定是前3只,是4只中的任意3只。
目录
相关文章
【python】生成随机数字/字母/指定位数的字母+数字的字符串
【python】生成随机数字/字母/指定位数的字母+数字的字符串
|
网络协议 测试技术 网络安全
|
算法 程序员 应用服务中间件
推荐一款基于docker部署的个人免费笔记工具wiznote
推荐一款基于docker部署的个人免费笔记工具wiznote
推荐一款基于docker部署的个人免费笔记工具wiznote
目前还存活的多个电驴下载站点
<div id="link-report"> <div class="topic-content"> <p>0、<a href="http://www.douban.com/link2?url=http%3A//www.emule-project.net/" rel="nofollow" target="_blank">http://www.emule-pro<wbr>ject.net
20671 0
|
9月前
|
监控 网络协议 网络安全
恶意代码分析入门--开始动态地分析恶意程序(chapter3L_Lab03-01)
实验3-1:通过动态分析技术分析Lab03-01.exe中的恶意代码,探究其导入函数、字符串列表、感染特征及网络特征。实验环境为Windows XP SP3,使用Process Explorer、Strings、Process Monitor、PEiD、Wireshark等工具。分析过程中发现恶意代码创建了互斥体、修改了注册表以实现自启动,并尝试访问外部恶意链接。
214 3
恶意代码分析入门--开始动态地分析恶意程序(chapter3L_Lab03-01)
|
JSON 供应链 API
1688 商品采集数据,1688 商品详情数据接口
1688开放平台提供的商品详情数据接口,允许第三方开发者获取平台上商品的详细信息,助力企业实现精准市场分析、优化供应链管理和个性化客户服务。开发者需注册账号并申请权限,通过HTTP请求调用接口,获取JSON格式的数据,涵盖商品基本信息、图片、属性及店铺信息。使用时需注意权限管理、调用频率限制及数据异常处理,遵循平台规定,确保合规使用。如需详细了解,可参考官方文档或联系技术支持。
2221 1
|
机器学习/深度学习 存储 人工智能
【机器学习】Qwen1.5-14B-Chat大模型训练与推理实战
【机器学习】Qwen1.5-14B-Chat大模型训练与推理实战
1201 0
|
Linux
xenomai与VxWorks实时性对比(Jitter对比)
本文对比了VxWorks和xenomai的实时性,聚焦于Jitter这一关键指标。在特定的硬件环境下(双核Cortex-A15,2GB内存),VxWorks和xenomai的读取时间戳耗时分别为0.249和0.163微秒。在时钟中断Jitter方面,VxWorks各项测试平均值约为4.066微秒,而xenomai在空载和加载情况下的平均值分别为0.516和0.768微秒。任务Jitter上,VxWorks和xenomai内核态任务的平均Jitter接近,但xenomai用户态任务Jitter较高。
526 0
xenomai与VxWorks实时性对比(Jitter对比)
|
机器学习/深度学习 算法 Linux
xenomai内核解析--实时内存管理--xnheap
Xenomai是一个实时操作系统(RTOS)层,用于Linux,旨在提供确定性的任务调度和服务。其内存管理机制包括一个名为xnheap的内存池,确保内存分配和释放的时间确定性,以满足硬实时系统的严格需求。
351 0
xenomai内核解析--实时内存管理--xnheap
|
人工智能 程序员 数据处理
Pandas数据处理3、DataFrame去重函数drop_duplicates()详解
Pandas数据处理3、DataFrame去重函数drop_duplicates()详解
378 0
Pandas数据处理3、DataFrame去重函数drop_duplicates()详解