数字信号的产生(11)-伯努利分布随机数
admin 于 2017年09月15日 发表在 机器学习笔记
1. 伯努利(Bernoulli)分布
伯努利分布的概率密度函数为
用BN(p)表示。伯努利分布的均值为p,方差为p(1-p)
产生伯努利分布随机变量x的算法如下:
3. 函数说明(bn.h)(关于uinform函数,请查看这里)
#include "uniform.h"
int bn( double p, long int *s);
int bn( double p, long int *s)
{
int x;
double u;
u=uniform(0.0,1.0,s);
x=(u<=p)? 1:0;
return(x);
}4. 主函数实现(main.c)
#include <stdio.h>
#include "bn.h"
int main(void)
{
int i,j,x;
long int s;
double p;
p=0.7; //参数为0.7的伯努利分布
s=13579;
FILE *fp; //存储最终计算值
fp=fopen("data.dat","w"); //打开文本
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
{
x=bn(p,&s);
printf("%11d",x);
fprintf(fp,"%d\n",x); //存储数值
}
printf("\n");
}
fclose(fp); //关闭文本
return 0;
}5. 执行结果
6. 使用软件QtiPlot,进行直方图分析
