码迷,mamicode.com
首页 > 其他好文 > 详细

MATLAB 概率论题

时间:2017-11-03 23:53:00      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:选择   size   highlight   仿真   技术分享   应该   字符串   输出   sharp   

1、

技术分享

用模拟仿真的方法求解

clc
clear
tic
n=0;
N=100000;
for ii=1:N
    b=‘MAXAM‘;  %字符串格式
    a=randperm(5);  %
    b=[b(a(1)),b(a(2))];%选择两个字符,组成新的字符串
    c=randperm(2);
    if (b(1)==b(c(1))) %通过坐标来确定字符串是否一致
       n=n+1;
    end
end
rate=n/N;
time=toc
    

技术分享

运行时间0.3秒,概率约等于0.6

注意,如果某一句忘了加分号,有数据一直输出的话,时间如下

技术分享

可以看出时间大大增加,所以跑大数据量程序时,避免不必要的输出。

2、

有100条龙,101条凤,102条凰,他们两两随机相碰,当同种动物相碰时不发生变化,当不同动物相碰时,自身消失,变成另外的一种动物,例如龙和凤相碰,变成凰。求最后剩下动物的概率。

clc
clear
tic
c=zeros(1,101);
N=100000;
for ii=1:N
    m=100;n=101;p=102;%三种动物初始数据
    while((m~=0)&&(p~=0))&&(n>=0)%条件的设置,正常应该设置为两两为0,第三个不为零,三种情况取或
                                  %但我们经过分析后知道奇数的凤会最终留下,所以简化了条件
        a=rand;
        b=m*n+n*p+m*p;
        if ((a>=0)&(a<(m*n/b)))%通过随机数模拟两两随机的概率比例
            m=m-1;
            n=n-1;
            p=p+1;%凰加1
        elseif ((a>=(m*n/b))&((a<(m*n+n*p)/b)))
            m=m+1;
            n=n-1;
            p=p-1;%龙加1
        elseif ((a>=((m*n+n*p)/b))&((a<(m*n+n*p+m*p)/b)))
            m=m-1;
            n=n+1;
            p=p-1;%凤加1
        end
    end
    c(n)=c(n)+1;%最后剩n个凤时的个数
end
time=toc
hist(c)

技术分享

技术分享

实验100000次剩余n只凤的个数。

  

  

MATLAB 概率论题

标签:选择   size   highlight   仿真   技术分享   应该   字符串   输出   sharp   

原文地址:http://www.cnblogs.com/ruo-li-suo-yi/p/7780596.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!