博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
菜鸟之路——数学建模之统计实验
阅读量:7000 次
发布时间:2019-06-27

本文共 2400 字,大约阅读时间需要 8 分钟。

一、统计实验

1,电梯问题

菜鸟之路——数学建模之统计实验
Matlab代码:

clc;clear all;close all;y=0;m=1000;   %模拟次数r=10;         %人数n=7;           %层数for i=1:m    u=rand(1,r);    %产生r个0-1的均匀随机数    x=floor(u*n+1);    %floor函数,向负无穷大方向取整    y(i)=length(unique(x));    %unique函数是去除相同的元素endrt=mean(y)

运行结果:

rt =

5.7350

知识点:

(1)Matlab中随机数的产生

rand()

生成(0,1)区间上均匀分布的随机变量。基本语法:

rand([M,N,P ...])

生成排列成MNP... 多维向量的随机数。如果只写M,则生成M*M矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:

randn()

生成服从标准正态分布(均值为0,方差为1)的随机数。基本语法和rand()类似。

randn([M,N,P ...])

生成排列成MNP... 多维向量的随机数。如果只写M,则生成M*M矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:

更详细的随机数的产生在http://blog.sina.com.cn/s/blog_7e7409e30100w6n9.html

(2)取整函数

fix-向零方向取整。
round-向最近的方向取整。
floor-向负无穷大方向取整
ceil-向正无穷大方向取整。

2,蒲丰投针实验

菜鸟之路——数学建模之统计实验
菜鸟之路——数学建模之统计实验
Matlab代码

%蒲丰投针实验a=1;      %平行直线间隔的一半l=0.8;    %针长的一半n=100000;  %模拟次数m=0;       %针落在区域内的次数for i=1:n    y(i)=rand(1);    theta(i)=pi*rand(1);    if(y(i)<=l*sin(theta(i)))         m=m+1;    endendp=m/n

运行结果

p =

0.5074

3,练习题

菜鸟之路——数学建模之统计实验
Matlab代码

%假设一年有365天,假设现场球迷年龄在18,80岁以内PeopleNumber=22;    %采访了22个人Times=10000;        %模拟次数EqualNum=0;         %正好两个人生日相同的次数for i=1:TimesYear=2018-floor(rand(1,PeopleNumber)*(80-18))+18;   %22个个人的出生年份Day=floor(rand(1,PeopleNumber)*364)+1;  %22个人出生在哪一天N=365*Year+Day;Unequal=length(unique(N));%生日不相同的人数if(PeopleNumber-Unequal==1)%正好两个人生日相同的次数     EqualNum=EqualNum+1;endendP=EqualNum/Times

运行结果

采访22人时:P = 0.0092
采访40人时:P = 0.0338
采访50人时:P = 0.0494
采访64人时:P = 0.0800

4,练习题

菜鸟之路——数学建模之统计实验

Matlab代码
第一问

Times=10000;%模拟次数RightTimes=0;%符合要求的次数N0=[0,0,0,1,1,1,1,1,1,1,1,1];%0为用过的,1为新的for i=1:Times    Gain1=floor(rand(1,3)*11)+1;%第一次从框中拿球    Num1=N0(Gain1(1))+N0(Gain1(2))+N0(Gain1(3)); %第一次拿到新球的数量    N1=[0,0,0,1,1,1,1,1,1,1,1,1];    for j=4:4+Num1-1        N1(j)=0;     %将用过的球置零    end    Gain2=floor(rand(1,3)*11)+1;%第二次从框中拿球    Num2=N1(Gain2(1))+N1(Gain2(2))+N1(Gain2(3)); %第二次拿到新球的数量    if(Num2==3)         RightTimes=RightTimes+1;    endendP=RightTimes/Times

运行结果:

P =

0.1508

第二问

Times=10000;%模拟次数RightTimes=0;%符合要求的次数N0=[0,0,0,1,1,1,1,1,1,1,1,1];%0为用过的,1为新的for i=1:Times    Gain1=floor(rand(1,3)*11)+1;%第一次从框中拿球    Num1=N0(Gain1(1))+N0(Gain1(2))+N0(Gain1(3)); %第一次拿到新球的数量    N1=[0,0,0,1,1,1,1,1,1,1,1,1];    for j=4:4+Num1-1        N1(j)=0;     %将用过的球置零    end    Gain2=floor(rand(1,3)*11)+1;%第二次从框中拿球    Num2=N1(Gain2(1))+N1(Gain2(2))+N1(Gain2(3)); %第二次拿到新球的数量    if(Num2==3&&Num1==3)   %第二次三个新球且第一次三个新球        RightTimes=RightTimes+1;    endendP=RightTimes/Times

运行结果

P =

0.0344

转载于:https://blog.51cto.com/12568495/2136852

你可能感兴趣的文章
如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?...
查看>>
postgresql 自动备份
查看>>
读写文件之日志文件
查看>>
win7 远程桌面凭证不工作
查看>>
cookies,sessionStorage 和 localStorage 的区别
查看>>
android中Tab设计中:tab中的listview最下面一部分被tab遮盖的解决
查看>>
CentOS下编译php时的一些典型错误及解决办法.
查看>>
Hg Mercurial版本管理介绍
查看>>
redis
查看>>
开源项目学习方法
查看>>
block的使用
查看>>
使用Toolbar自定义布局的时候左边右边总有一点空间无法使用
查看>>
Photoshop 常用快捷键
查看>>
外观模式
查看>>
Extjs 4 grid修改某一行style
查看>>
background-position设置无效问题解决
查看>>
对称加密算法-DES
查看>>
Android BroadcastReceiver
查看>>
我的友情链接
查看>>
我的友情链接
查看>>