复杂的随机模拟案例
马尔科夫随机场在计算机视觉中的实际案例分析(四)

马尔科夫随机场在计算机视觉中的实际案例分析引言马尔科夫随机场(Markov Random Field, MRF)是一种用于对图像和其他视觉数据进行建模和分析的概率图模型。
它具有在计算机视觉领域中广泛应用的特点,能够处理像素之间的相互作用,并在图像分割、特征提取、目标识别等任务中发挥着重要作用。
本文将通过实际案例分析,探讨马尔科夫随机场在计算机视觉中的应用和效果。
图像分割图像分割是计算机视觉领域中的一项重要任务,它的目标是将图像中的不同对象或区域分割开来。
马尔科夫随机场在图像分割中的应用得到了广泛的关注和应用。
以人像分割为例,通过将图像像素的分类结果作为随机变量,构建马尔科夫随机场模型,能够有效地考虑像素之间的空间相互关系,提高分割的准确性和鲁棒性。
在实际案例中,研究人员使用马尔科夫随机场模型进行人像分割的研究。
通过考虑像素之间的相邻关系和灰度相似性,构建了一个能够自适应地对不同图像进行分割的模型。
实验结果表明,在不同场景和光照条件下,该模型能够有效地分割出人像,并且在边缘部分具有更好的连续性和鲁棒性,相比传统方法,能够取得更好的分割效果。
特征提取在目标识别和图像检索等任务中,特征提取是一个重要的预处理步骤。
马尔科夫随机场能够通过模拟像素之间的相关性,提高特征的表达能力,从而提高了特征提取的效果。
在实际案例中,研究人员使用马尔科夫随机场来进行图像的纹理特征提取。
通过构建能够描述纹理特征的马尔科夫随机场模型,能够更好地捕捉图像中的纹理信息,并且在目标识别和图像分类任务中取得了较好的效果。
目标识别马尔科夫随机场在目标识别任务中发挥着重要作用。
在实际案例中,研究人员使用马尔科夫随机场模型对图像中的目标进行识别和定位。
通过考虑目标与背景之间的关系和像素之间的相互作用,构建了一个能够对目标进行有效识别和定位的模型。
实验结果表明,在复杂背景和部分遮挡的情况下,该模型能够取得较好的识别效果,并且在目标定位上具有较好的鲁棒性。
数学建模蒙特卡洛模拟方法详细案例

数学建模蒙特卡洛模拟方法详细案例
数学建模中的蒙特卡洛模拟方法是一种基于随机数生成和概率统计的方法,可以用于求解各种复杂的问题。
下面是一个详细的案例,以帮助你更好地理解蒙特卡洛模拟方法的应用。
案例:估计圆周率
假设我们要求解圆周率(π)的值。
我们可以使用蒙特卡洛模拟方法来估计π的值。
1. 定义问题的概率模型:在这个案例中,我们使用一个简单的概率模型,即在一个边长为1的正方形内随机生成点,并计算这些点到正方形中心的距离。
2. 生成随机数:使用随机数生成器生成一系列的随机数,这些随机数代表点在正方形内的坐标。
3. 计算点到中心的距离:对于每个生成的点,计算它到正方形中心的距离。
4. 计算落在圆内的点的比例:将落在半径为1的圆内的点的数量除以总的点数。
这个比例近似于圆的面积与正方形的面积之比,也就是π/4。
5. 通过比例求解π:将步骤4中的比例乘以4,即可得到π的近似值。
通过多次重复上述步骤并取平均值,可以进一步提高估计的准确性。
需要注意的是,蒙特卡洛模拟方法是一种基于随机数生成和概率统计的方法,其结果具有一定的随机性和误差。
因此,在应用蒙特卡洛模拟方法时,需要选择合适的随机数生成器和概率模型,以确保结果的准确性和可靠性。
马尔可夫链蒙特卡洛方法在环境科学中的应用案例分析(五)

马尔可夫链蒙特卡洛方法在环境科学中的应用案例分析引言马尔可夫链蒙特卡洛方法(Markov Chain Monte Carlo, MCMC)是一种重要的随机模拟技术,它在环境科学领域中有着广泛的应用。
本文将通过几个具体的案例分析,探讨MCMC在环境科学中的应用。
案例一:气候变化模拟气候变化对全球环境和人类生活产生着深远的影响。
为了更好地理解和预测气候变化,科学家们利用MCMC方法构建了气候模型。
这些模型通过考虑大气、海洋、陆地和冰雪等要素之间的相互作用,模拟了全球气候系统的变化过程。
MCMC方法在气候模型中的应用主要体现在参数估计和不确定性分析方面。
由于气候系统的复杂性,其中涉及的参数众多且相互关联。
通过MCMC方法,科学家们可以对这些参数进行有效的估计,并且得到相应的参数分布信息,从而提高模型的准确性和可靠性。
案例二:生态系统动态建模生态系统是地球上生物和非生物要素相互作用的复杂系统,其动态变化对环境保护和资源管理具有重要意义。
MCMC方法在生态系统动态建模中的应用,为科学家们提供了一种强大的工具。
例如,在研究生态系统中的物种丰富度和群落结构时,科学家们可以利用MCMC方法对相关参数进行估计,并且对模型进行拟合和验证。
通过MCMC方法得到的参数估计结果,可以帮助科学家们深入理解生态系统的动态变化规律,并为生态保护和资源管理提供科学依据。
案例三:环境污染模拟与评估环境污染对人类健康和生态系统造成了严重的影响,因此对其进行准确的模拟与评估具有重要意义。
MCMC方法在环境污染模拟与评估中的应用,为科学家们提供了一种有效的手段。
在模拟环境污染扩散过程时,科学家们可以利用MCMC方法对相关的物理模型进行参数估计和不确定性分析。
通过对模型参数进行随机抽样,科学家们可以得到环境污染扩散的概率分布,从而更准确地评估污染物对周围环境的影响。
结论通过以上的案例分析,我们可以看到MCMC方法在环境科学中的广泛应用。
无论是气候变化模拟、生态系统动态建模还是环境污染模拟与评估,MCMC方法都能够为科学家们提供有效的工具,帮助他们更好地理解和应对环境问题。
随机案例急救模拟演练

随机案例急救模拟演练随机案例急救模拟演练,这是一种非常重要的培训方式。
不仅可以让大家在安全的环境下学习急救技能,还可以通过模拟真实情况来提高应对突发事件的能力。
下面,我将分步骤阐述随机案例急救模拟演练的流程。
第一步,确定演练场地和场景首先需要确定演练场地,一般选择学校、公司、医院等公共场所,以确保场地的真实性和可操作性。
同时,还需要制定相应的演练场景,模拟实际情况下可能出现的各种意外事件。
第二步,准备模拟器材和器具在演练开始之前,还需要准备好模拟器材和器具。
例如,需要准备模拟器官、初级抢救器材、紧急救护箱、体温计、血压计等器具,以便进行实战演习。
第三步,设计演练方案随机案例急救演练需要事先设计好演练方案,包括演练的流程、演练的步骤、演练的时间以及演练的目标等。
否则,演练可能会出现混乱和不可控的情况。
第四步,组织演练人员和分组一般需要组织演练人员参与演练,并确定分组。
一方面可以避免演练过程中混乱,另一方面还可以让每个人都有机会参与,从而提高演练的效果和意义。
第五步,开始演练根据设计好的演练方案,开始实战演练。
在演练的过程中,可以模拟各种可能的场景,例如突发心脏病、烧伤、密集恐惧症等等。
演练时需要紧急处理,以便能够在实际情况下更好地应对突发事件。
第六步,总结反思随机案例急救演练之后,需要对演练的过程进行总结反思。
详细分析演练中出现的问题和不足,制定改进方案,提高日常的急救技能和水平。
这样在今后的演练中,就能够更加准确和有效地进行应急响应和抢救工作。
总之,随机案例急救模拟演练是一种非常实用的培训方式。
通过不断的演练,不仅可以提高应对不同场景的能力,还可以增强抢救成果,提高急救效率。
同时,还可以让参与者更加深入地理解安全知识,保障日常生活的安全。
马尔可夫链蒙特卡洛方法在环境科学中的应用案例分析(Ⅲ)

马尔可夫链蒙特卡洛方法在环境科学中的应用案例分析马尔可夫链蒙特卡洛方法是一种重要的随机模拟技术,广泛应用于金融、生物、物理等领域。
在环境科学领域,马尔可夫链蒙特卡洛方法同样发挥着重要的作用。
本文将通过几个具体的应用案例,介绍马尔可夫链蒙特卡洛方法在环境科学中的应用。
案例一:气候模拟气候模拟是环境科学领域中一个重要的问题。
马尔可夫链蒙特卡洛方法可以用来模拟气候系统的随机性。
通过对气候系统中的各种参数进行采样,并使用马尔可夫链蒙特卡洛方法进行模拟,可以得到气候系统的概率分布。
这对于预测未来气候变化、制定应对气候变化的政策具有重要意义。
案例二:水资源管理在水资源管理中,马尔可夫链蒙特卡洛方法可以用来模拟水文过程中的随机变量,比如降雨量、蒸发量等。
通过对这些随机变量进行采样,并使用马尔可夫链蒙特卡洛方法进行模拟,可以得到水资源的概率分布。
这对于合理利用和管理水资源具有重要意义。
案例三:生态系统建模生态系统是环境科学中一个复杂的系统。
马尔可夫链蒙特卡洛方法可以用来对生态系统进行建模和模拟。
通过对生态系统中的各种参数进行采样,并使用马尔可夫链蒙特卡洛方法进行模拟,可以得到生态系统的概率分布。
这对于保护生态环境、维护生物多样性具有重要意义。
案例四:大气污染模拟大气污染是环境科学中一个严重的问题。
马尔可夫链蒙特卡洛方法可以用来模拟大气污染物的扩散和传播过程。
通过对大气污染物的扩散和传播过程中的各种参数进行采样,并使用马尔可夫链蒙特卡洛方法进行模拟,可以得到大气污染物的概率分布。
这对于预测大气污染的影响范围、制定减排政策具有重要意义。
结论马尔可夫链蒙特卡洛方法在环境科学中具有广泛的应用前景。
通过对环境系统中的各种随机变量进行采样,并使用马尔可夫链蒙特卡洛方法进行模拟,可以得到环境系统的概率分布,为环境科学领域的研究和应用提供重要的参考。
因此,我们有理由相信,马尔可夫链蒙特卡洛方法将在环境科学领域发挥越来越重要的作用。
三门问题 算法

三门问题算法全文共四篇示例,供读者参考第一篇示例:三门问题(Monty Hall problem)是一个经典的概率问题,名字来源于20世纪70年代的一个著名电视游戏节目主持人Monty Hall。
在这个问题中,参赛者面前有三个关闭的门,其中一个门后面有一辆汽车,另外两个门后面是羊。
参赛者首先随机选择一个门,然后主持人打开其中一个有羊的门,然后问参赛者是否要更换选择。
这个问题的解法可能会让人感到困惑,但事实上有一个最优的策略,可以让参赛者提高获胜的概率。
下面介绍一下这个问题的算法和解析过程。
我们来考虑如果参赛者坚持最初的选择,即不更换选择的情况。
在这种情况下,参赛者获胜的概率是1/3,因为汽车可能在任意一个门后面。
这很容易理解,因为初始选择的概率就是1/3。
接下来,我们考虑如果参赛者选择更换策略的情况。
在这种情况下,主持人已经为参赛者提供了额外的信息,即其中一个有羊的门已经被打开了。
根据这个信息,我们可以利用概率计算来分析。
假设参赛者选择的是有羊的门,那么如果参赛者坚持选择,那么胜率仍然是1/3;如果参赛者更换选择,那么胜率将变为2/3。
如果参赛者选择的是汽车的门,那么如果参赛者坚持选择,胜率是2/3;如果更换选择,胜率是1/3。
所以,如果参赛者选择更换策略,那么胜率会提升到2/3。
简单说,就是更换的概率会高于不更换的概率。
这个问题在数学上可以通过贝叶斯定理来解释,也可以通过模拟的方法来验证。
如果进行多次实验,记录参赛者的选择和最终结果,然后比较不更换和更换策略的胜率,就可以看到更换策略的优势。
在实际中,这个问题还可以引申出很多有趣的讨论,如何利用这个策略来获得更多的利益,以及如何解释这种概率现象等等。
总结一下,三门问题是一个具有挑战性的概率问题,通过合理的分析和算法,可以找到最优的策略来提高获胜的概率。
希望大家能够喜欢这个问题,并对概率问题有更深入的理解。
第二篇示例:三门问题,又称为蒙提霍尔问题,是一个著名的概率问题。
R语言随机抽样二项分布仿真案例

R语言随机抽样二项分布仿真案例在R语言中,可以使用`rbinom(`函数进行二项分布的随机抽样仿真。
二项分布的仿真案例可以是模拟投掷硬币的结果。
设想一个情境,我们有一枚硬币,我们想要模拟投掷100次,然后计算正面朝上的次数。
首先,我们需要设定硬币正面朝上的概率,假设为0.5(即硬币是公平的)。
然后,我们可以使用`rbinom(`函数来进行100次投掷的模拟,其中n参数为投掷的次数,size参数为二项分布的参数,prob参数为硬币正面朝上的概率。
```R#模拟投掷100次硬币的结果set.seed(123) # 设置随机种子,以确保结果可重现n<-100#投掷次数p<-0.5#正面朝上的概率#进行100次投掷的模拟coin_results <- rbinom(n, size = 1, prob = p)#统计正面朝上的次数num_heads <- sum(coin_results)#输出结果print(paste("正面朝上的次数:", num_heads))```运行上述代码,我们可以获得模拟投掷100次硬币的结果,即正面朝上的次数。
```Rcoin_results <- rbinom(n, size = 1, prob = p)#统计不同正面朝上次数的频率分布head_counts <- table(coin_results)#绘制直方图```此外,我们也可以计算正面朝上的概率以及其置信区间。
请注意,我们需要使用二项分布的参数进行计算。
```R#计算正面朝上的概率及其置信区间p_hat <- num_heads / n # 正面朝上的概率估计值se <- sqrt(p_hat * (1 - p_hat) / n) # 标准误差alpha <- 0.05 # 置信水平me <- qnorm(1 - alpha / 2) * se # 边际误差lower_bound <- p_hat - me # 置信区间下界upper_bound <- p_hat + me # 置信区间上界#输出结果print(paste("正面朝上的概率:", p_hat))print(paste("置信区间:[", lower_bound, ",", upper_bound, "]"))```运行上述代码,我们可以获得正面朝上的概率以及其置信区间。
蒙特卡洛模拟在统计中的应用

蒙特卡洛模拟在统计中的应用蒙特卡洛模拟是一种基于随机抽样的数值计算方法,通过随机抽样的方式来解决复杂的数学问题。
在统计学中,蒙特卡洛模拟被广泛应用于估计统计量、模拟随机过程、评估风险等方面。
本文将介绍蒙特卡洛模拟在统计中的应用,并探讨其在不同领域的具体应用案例。
一、蒙特卡洛模拟的基本原理蒙特卡洛模拟的基本原理是通过生成服从某种概率分布的随机数来模拟复杂的随机现象,然后利用这些随机数进行数值计算,从而得到所关心的统计量或结果。
其基本步骤包括:1. 确定模拟对象:首先需要确定要模拟的对象或系统,包括系统的输入、输出和运行规则等。
2. 设定随机数生成规则:根据模拟对象的特性,确定随机数生成的规则和概率分布。
3. 生成随机数:按照设定的规则生成符合要求的随机数序列。
4. 进行模拟计算:利用生成的随机数进行模拟计算,得到所需的统计量或结果。
5. 分析结果:对模拟结果进行统计分析,评估模拟的准确性和可靠性。
二、蒙特卡洛模拟在统计中的应用1. 参数估计:在统计学中,参数估计是一项重要的任务,通过蒙特卡洛模拟可以对参数进行估计。
例如,可以利用蒙特卡洛模拟来估计某一分布的参数,如均值、方差等。
2. 假设检验:假设检验是统计学中常用的方法之一,通过蒙特卡洛模拟可以进行假设检验的模拟。
例如,可以利用蒙特卡洛模拟来模拟零假设成立时的抽样分布,从而进行显著性检验。
3. 随机过程模拟:在金融领域,蒙特卡洛模拟被广泛应用于模拟随机过程,如股票价格的波动、利率的变动等。
通过模拟这些随机过程,可以评估风险、制定投资策略等。
4. 风险评估:在保险业和风险管理领域,蒙特卡洛模拟常用于评估风险。
通过模拟不同的风险情景,可以评估风险的概率分布、价值-at-风险等指标。
5. 优化问题:蒙特卡洛模拟还可以用于解决优化问题,如投资组合优化、生产调度等。
通过模拟不同的决策方案,可以找到最优的解决方案。
三、蒙特卡洛模拟在不同领域的具体应用案例1. 金融领域:在金融领域,蒙特卡洛模拟被广泛应用于期权定价、风险管理等方面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
肖柳青 主讲 lucyxiao@
PUB:SSMA_xiao@
第六章 复杂的模拟举例
[1] 有趣的蒙提霍尔问题(Monty Hall problem) [2] 抽球问题 [3] 街头骗局揭秘 [4] 求圆周率π(另一种用蒙特卡洛方法) [5] 四人追逐问题 [6] 排队系统模拟实例
CASE1. 有趣的蒙提霍尔问题 (Monty Hall problem)
• 蒙提霍尔问题(Monty Hall problem),也 称为三门问题,
• 是一个源自博弈论的数 学游戏问题,问题的名 字来自美国的电视游戏 节目:Let’s Make a Deal,该节目的主持人 名叫蒙提· 霍尔(Monty Hall)
• 假设n=20,m=50,也就是说有20个球,从中有放回地随机抽 取50次,则可调用probmont函数计算每个球都能被抽到的 理论概率和模拟概率。 • >> [p0,p] = probmont(20,50,10) % 模拟10次 • p0 = 0.1642 % 理论概率 • p = 0.2000 % 模拟概率 • >>[p0,p] = probmont(20,50,1000) %模拟1000次 • p0 =0.1642 • p =0.1690 • >>[p0,p] = probmont(20,50,10000) % 模拟10000次 • p0 =0.1642 • p =0.1640
• SheepAndCar 函数代码的注释部分给 出了该函数的调用格式。
• 下面调用SheepAndCar函数,针对不同的n,求参 赛者更换选择之后赢得汽车的概率的模拟值 • >> p = SheepAndCar([10,100,1000,10000,100000]) %求概率模拟值向量 • p= • 0.7000 0.6600 0.6650 0.6600 0.6663 0.6666
n
P( Ai Aj )
m n
( 1) n 1 P( A1 A2
m
An )
n i i i n i 1 ( 1) C ( 1) Cn n n i 1 i 0
n i 1 i n
随机模拟方法求解
• 首先给n个球从1~n分别编号。 • 在MATLAB中进行N次随机模拟,每次模拟用 randsample函数(或randint函数)生成m 个随机整数(取值范围从1~n)作为m次有放 回抽球,如果这m个随机整数包含了全部的n 个编号,则将计数器的值加1,这样就可以计 算出N次模拟中n个球都能被取到的概率。 • 随着N的增大,这个频率就会越来越接近于每 个球都能被抽到的概率P(A)。
• 设摸球者在一次游戏中得到的奖金(罚金)为X, 则 P( X 10) P( A) 2 0.0001554
1 2C8 C8 P( X 1) P( B ) 0.009946 6 C18 6 2 2C8 C8 P( X 0.5) P(C ) 0.1218 6 C185 3 2C8 C8 P( X 0.2) P( D A1 A2
An ) 0
1-
=
袋子中的每个球都能被抽到的概率为
P ( A ) P ( A1 ) P ( A2 ) … P ( An ) 1 P ( A1 A 2 … A n )
1 P( Ai ) ( 1)
i 1 n 2 1 1i j n
6 C18 7
C84C84 P( X 3) P( E ) 6 0.3807 C18
可得X的分布列
X P 10 1 0.5 0.2
0.4873
-3
0.3807
0.0001554 0.009946 0.1218
• 所以可得X的数学期望(均值)为 E(X) = 10 P(X = 10) + 1 P(X = 1) + 0.5 P(X = 0.5) + 0.2 P(X = 0.2) - 3 P(X = -3) = -0.9732(元) • 即从平均意义上来说摸球这在一次游戏中 要赔掉0.9732元,故此游戏中庄家(游 戏经营者)才是真正的赢家。
这个游戏的玩法是:
参赛者面前有三扇关闭的门,其中一扇门的后 面藏有一辆汽车,而另外两扇门的后面则各藏 有一只山羊。参赛者从三扇门中随机选取一扇, 若选中后面有车的那扇门就可以赢得该汽车。 当参赛者选定了一扇门,但尚未开启它的时候, 节目主持人会从剩下两扇门中打开一扇藏有山 羊的门,然后问参赛者要不要更换自己的选择, 选取另一扇仍然关上的门。这个游戏涉及到的 问题是:参赛者更换自己的选择是否会增加赢 得汽车的概率?
1 2 2 P( B ) P( A) P( B | A) P( A) P( B | A) 0 1 3 3 3
参赛者更换选择后赢得汽车的概率增大了,从最 初的1/3变为2/3了,显然参赛者应该更换自己的 选择。
随机模拟方法求解
• 设两只羊的编号分别为1和2,汽车的编号为3。 • 现在从数字1、2、3中随机选取一个数字,若一 开始选中1或2,则更换选择后选中3,即赢得汽 车;若一开始选中3,则更换选择后选中1或2, 即得不到汽车。 • 将这样的试验重复进行n次,记录一开始选中1 或2的次数m(即更换选择后赢得汽车的次数), 从而可以确定更换选择后赢得汽车的频率m/n。 由大数定律可知当试验次数n增大时,频率m/n 趋近于更换选择后赢得汽车的概率。
• • • • • • • • • • • • •
If isequal(Freq,[4;4]) Freq0=Freq0+[1 0 0 0 0]; Elseif isequal(Freq,[3;5]) Freq0=Freq0+[0 1 0 0 0]; Elseif isequal(Freq,[2;6]) Freq0=Freq0+[0 0 1 0 0]; Elseif isequal(Freq,[1;7]) Freq0=Freq0+[0 0 0 1 0 ]; Else Freq0=Freq0+[0 0 0 0 1]; End End Em= Freq0*[-3, 0.2,0.5,1,10]’/n;
MATLAB程序代码如下:
• function p = SheepAndCar(n)
% p = SheepAndCar(n), 利用蒙特卡洛方法求解蒙提霍尔问题,求参赛 者更换选择之后 % 赢得汽车的概率p。这里的n是正整数标量或向量,表示随机抽样的次数。 •
• for i = 1:length(n) • x = randsample(3,n(i),’true’); %随机抽样 • p(i) = sum(x~=3)/n(i); %概率的模拟值 • end
随机模拟方法求解
• 给16个球分别从1-16进行编号,假设8个红 球的编号1-8,而8个白球的编号为9-16。 • 在MATLAB中进行n次随机模拟,每次模拟 用randsample函数生成8个随机整数(取 值范围从1-16)作为一次抽取的8个球。 • 统计n次模拟中各种可能的结果(见下表)出 现的频数 nA , nB , nC , nD , nE ,从而可得摸球者在一次 游戏中得到的奖金(罚金)的数学期望的模拟 值为
• num = 0; • x = 0; % 计算模拟概率 • for i = 1:N • x = randsample(n,m,’true’); % 有放回随机 抽样如果n个数都被抽到,将计数器的值增加1 • if numel(unique(x)) == n • num = num + 1; • end • end • p = num/N; % 模拟概率
• for i = 1:n • x = randsample(16,8,’flase’); % 不放回随机抽样 x(x <= 0) = 1; % 将x中取值为1至8的元素改为1 用来标记红球 x(x>8) = 2; % 将x中取值为9至16的元素改为2用来标记白球 %统计x中1和2出现的次数,整理成[4 4],[3 5],[2 6],[1 7],[0 8] 的形式 • x = sort(x); % 将x从小到大排序 • x1 = diff(x); % 求差分 • x1(end+1)=1; • x1=find(x1); • x1=[0;x1]; • Freq=sort(diff(x1)); • If Freq==8 • Freq=[0;8]; • End
• 设A=“袋子中的每个球都能被抽到”, • Ai =“第i个球没有被抽到”i=1,2,…,n 则有 n 1 m ) • P( Ai ) ( i=1,2,…,n n 2 n )m • P( Ai Aj ) ( i≠j,i,j=1,2,…,n n • P( Ai Aj Ak ) ( n 2 )m i≠j≠k,i,j,k=1,2,…,n n • …… •
MATLAB函数probmont代码如下:
% [p0,p] = probmont(n,m,N),有n个球,从中有放回地抽取m次,求每个 球都能被取到的理论概率p0和蒙特卡洛模拟概率。输入参数N为随机模 拟次数。当抽球次数m小于球的总数n时,理论概率和模拟概率均为0 • • • • • • • • function[p0,p] = probmont(n,m,N) if n>m p0 = 0; % 理论概率 p = 0; % 模拟概率 return; end i = 0:n; % 定义一个向量计算理论概率 p0 = sum((-1).^i*factorial(n)./(factorial(i).*factorial(ni)).*(1-i/n).^(m));
• 由以上结果可以看到,随着随机抽样次数 的增大,所求概率的模拟值逐渐趋近于理 论值2/3。
CASE2. 抽球问题
• 一袋子中有n个球,从中有放回地抽取 m(n≤m)次,求袋子中的每个球都能 被抽到的概率。这个问题也可以描述为 m(n≤m)个球随机地落到n个盒子中, 求每个盒子中都有球的概率。