蒙特卡洛模拟这个名字听起来很厉害,简单来说其实就是进行多次随机抽样,结合题目和代码很容易理解
这个问题就是股东的对策进行多次抽样后排序得出势力值
话不多说,show code!
clear,clc;
count=100000;
a=[20 15 10 5 5 3 3 3 3 1 1 1];%十个数,可以是其他不同的十个
r=zeros(size(a));%每个位置出现的次数,初始化全部为零
for i=1:count
b=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;
下面是运行结果