1. 二项式分布随机数

二项式分布概率函数为

用Bin(n, p)表示,二项式分布的均值为np, 方差为np(1-p)。 当n=1时, Bin(n, p)就是伯努利分布BN(p)。

2. 二项式分布随机数算法

3. 函数说明(bin.h)(关于bn函数,请查看这里

#include "bn.h"
 
int bin(int n, double p, long int *s);
 
int bin(int n, double p, long int *s)
{
    int i;
    double x;
    for(x=0.0,i=0;i<n;i++)
    {
       x+=bn(p,s);
    }
    return(x);
}

4. 主函数实现

#include <stdio.h>
#include "bin.h"
 
int main(void)
{
    int i,j,n,x;
    long int s;
    double p;
    n=5;
    p=0.7;
    s=13579;
    FILE *fp;   //存储最终计算值
    fp=fopen("data.dat","w");   //打开文本
    for(i=0;i<10;i++)
    {
       for(j=0;j<5;j++)
       {
           x=bin(n,p,&s);
           printf("%11d\t",x);
            fprintf(fp,"%d\n",x);    //存储数值
       }
       printf("\n");
    }
    fclose(fp);    //关闭文本
    return 0;
}

5. 执行结果

6. 使用软件QtiPlot,绘制输出波形

7. 使用Python计算理论分布波形

注意:本站所有文章除特别说明外,均为原创,转载请务必以超链接方式并注明作者出处。 标签:处理算法,二项分布