一、功能
产生二项式分布的随机数。
二、方法简介
二项式分布的概率密度函数为
[f(x)=C_{n}^{x}p^{x}(1-p)^{n-x} qquad x in left { 0,1,...,n
ight }
]
用(Bin(n,p))表示。二项式分布的均值为(np),方差为(np(1-p))。当(n=1)时,(Bin(n,p))就是贝努利分布(BN(p))。
若(y_i(i=1,2,...,n))是独立同分布(IID)的参数为(p)的贝努利分布随机变量,则(x=sum_{i=1}^{m}y_{i})服从二项分布(Bin(n,p))。因此,产生二项分布随机变量(x)的具体算法如下:
- 产生IID贝努利分布的随机数(y_1,y_2,...,y_n),即(y_i sim BN(p));
- 计算(x=sum_{i=1}^{m}y_{i})。
三、使用说明
是用C语言实现产生二项分布随机数的方法如下:
/************************************
n ---二项分布分布参数n
p ---二项分布分布参数p
s ---随机数种子
************************************/
#include "bn.c"
int bin(int n, double p, long int *s)
{
int i;
double x;
u = uniform(0.0, 1.0, s);
for(x = 0.0, i = 0; i < n; i++)
x += bn(p, s);
return(x);
}
bn.c文件参见贝努力分布的随机数