关于MATLAB中binornd函数

来源:百度知道 编辑:UC知道 时间:2024/05/14 09:32:41
例如R=binornd(10,0.5),根据help中的解释,10和0.5分别是二项分布中的N和P。
但是实际运行后的结果是产生一个0到10之间的数。后面的那个数的大小(0.5)表示靠近10的概率,即如果R=binornd(10,1)则输出的肯定是10.
为什么会这样啊???????
binornd到底用法是怎么样的,产生的结果是怎么样的?

此函数生成服从二项分布的随机数。二项分布有2个参数:n,p。考虑一个打靶的例子,每枪命中率为p,共射击N枪,那么一共击中的次数就服从参数为(N,p)的二项分布。注意p要小于等于1且非负,N要为整数。基本语法:
binornd(n,p,[M,N,P,...])
生成的随机数服从参数为(N,p)的二项分布,这些随机数排列成M*N*P... 多维向量。如果只写M,则生成M*M矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:
binornd(10,0.3,5,1) %生成5个随机数排列的列向量,一般用这种格式
binornd(10,0.3,5) %生成5行5列的随机数矩阵
binornd(10,0.3,[5,4]) %生成一个5行4列的随机数矩阵
%注:上述语句生成的随机数所服从的参数为(10,0.3)的二项分布
生成的随机数大致的分布。
x=binornd(10,0.45,100000,1);
hist(x,11);
我们可以将此直方图解释为,假设每枪射击命中率为0.45,每论射击10次,共进行10万轮,这个图就表示这10万轮每轮命中成绩可能的一种情况。

二项分布B(n,p)表示独立进行n次实验,成功的概率都是接近p的,而binornd函数就是求出二项分布的随机数,即在n次实验中成功的次数。R=binornd(10,0.5)得出的随机数肯定是接近于5的,十次中有5次成功,理论上概率就是p嘛,即这里的0.5。同样,binornd(10,1)产生的随机数肯定就是10 了,毕竟p=1,意思是每次都成功,肯定10次都成功了