Java教程

国赛培训——随机化算法——蒙特卡洛模拟

本文主要是介绍国赛培训——随机化算法——蒙特卡洛模拟,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 二:实例代码
    • rand(n,m),unifrnd(l,r,n,m)
    • 2.1 圆周率随机模拟计算

二:实例代码

rand(n,m),unifrnd(l,r,n,m)

(1)rand(m,n)函数产生由在[0,1]之间均匀分布的随机数组成的m行n列的矩阵(或称为数组)。
(2)a + rand(m,n)(b-a) 可以输出在[a,b]之间均匀分布的随机数组成的m行n列的矩阵。
eg:-2 + rand(3,2) * (2 - (-2)) -->输出在[-2,2]之间均匀分布的随机数组成的3行2列的矩阵。
(3)a + rand(m,n)
(b-a)等价于unifrnd(a,b,m,n)

2.1 圆周率随机模拟计算

问题:平面上画有等距离为a的一组平行线,向该平面投以长为l(l<a)的针,试求针与平行线相交的概率。
分析:设x为针与最近的一平行线的距离,σ表示针与平行线的夹角,0<x<L/2,0<σ<pi。若使针与平行线相交,一定有x<=L/2sin(σ),因此:p=2L/pi*a=m/n,并通过模拟x和σ得到pi的近似解。
在这里插入图片描述


                    
这篇关于国赛培训——随机化算法——蒙特卡洛模拟的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!