蒙特卡洛模拟方法的matlab实现
蒙特卡洛模拟这个名字听起来很厉害,简单来说其实就是进行多次随机抽样,结合题目和代码很容易理解
话不多说,show code!
clear,clc;
count=100000;
a=[20 15 10 5 5 3 3 3 3 1 1 1];%十个数,可以是其他不同的十个
c=1:12;
r=zeros(size(a));%每个位置出现的次数,初始化全部为零
for i=1:count
b=c(randperm(length(a)));%b就是a中10个数的随机顺序排列
for j=1:12
if sum(a(b(1:j)))>=50
break;
end
end
r(b(j))=r(b(j))+1;%对应位置记录加1个
end
r=r/count;
下面是运行结果