数字信号的产生(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,进行直方图分析