标题: C语言与数字信号处理——均匀分布的随机数 [打印本页]
作者: look_w 时间: 2017-11-18 20:05 标题: C语言与数字信号处理——均匀分布的随机数
1. 公式概率密度函数:
f
(n)={1
b−a
,
0,
a≤x≤b
其他
均值:
E
[X
]=a+b
2
方差:
V
AR[X
]=(b−a)
2
12
2. C代码生成随机数C代码:
double uniform(double a, double b, long int * seed){ double t; *seed = 2045 * (*seed) + 1; *seed = (*seed) % 1048576; t = (*seed)/1048576.0; t = a + (b - a) * t; return (t);}参数说明:
- a:给定区间的下限
- b:给定区间的上限
- *seed:随机数的种子
生成1000个均匀分布于区间
[0,1]
的随机数:
void main(void){ long int seed = 13579; int j, num; double a, b, temp; FILE * fp; a = 0; b = 1; num = 1000; fp = fopen("uniform.dat", "w"); for (j = 0; j < num; j++) { temp = Uniform(a, b, &seed); fprintf(fp, "%10.7f\n", temp); } fclose(fp);}
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |