蒙特卡洛模拟方法的matlab实现

蒙特卡洛模拟方法的matlab实现


这篇文章本来发在另一个号上的。。但是由于历史遗留的原因(id。微信号)把那个号注销了,结果忘记删除 原文章,好像申请删除还挺麻烦的,所以不删了直接在这重新发一遍

蒙特卡洛模拟方法的matlab实现_第1张图片蒙特卡洛模拟这个名字听起来很厉害,简单来说其实就是进行多次随机抽样,结合题目和代码很容易理解
这个问题就是股东的对策进行多次抽样后排序得出势力值
话不多说,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;

下面是运行结果
蒙特卡洛模拟方法的matlab实现_第2张图片

你可能感兴趣的:(数学建模)