当前位置:首页 » 编程语言 » 正态分布随机数C语言

正态分布随机数C语言

发布时间: 2025-04-28 16:07:11

❶ 如何用c语言生成一个正态分布的样本

不用加分,我做过,用来产生图像的高斯噪声,也就是你要的正态分布.
1.首先你的样本应该是有一定范围的吧,我假设它是从1-255
2.根据你的方差和期望,把样本代进去,算出该样本出现的概率
3.然后根据概率知识,你做一个累积概率
4.接着你用随机数产生一个0-1之间的均匀分布
5.看这个数落在哪个累积概率区间
6.按你要的样本数重复4-5
代码这里我给个matlab程序你参考一下,很好懂的

function [dest] = GeneGauss(expectation,deviation,width,height)
dest=zeros(width,height);
pz=zeros(256);
tempConst1=1/(sqrt(2*pi)*deviation);
tempConst2=2*deviation*deviation;
for i=1:256
pz(i)=tempConst1*exp(-(i-1-expectation)^2/tempConst2);
end
f=zeros(256);
f(1)=pz(1);
for i=2:256
f(i) = f(i-1)+pz(i);
end
for i=1:width
for j=1:height
n=rand;
for k=1:256
if(n<f(k))
dest(i,j)=k-1;
break;
end
end
end
end
end

❷ 如何在C语言中生成正态分布的随机数,要源代码~谢谢

随机生成一百个1至100的随机数。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 100
int main(int argc, char *argv[])
{
int i;
int a[N];
srand(time(NULL));
for(i=0;i<N;i++)
a[i]=rand()%100+1;
printf("生成的随机数为:\n");
for(i=0;i<N;i++)
{
printf("%5d",a[i]);
if((i+1)%10==0)
printf("\n");
}
system("PAUSE");
return 0;
}
输出结果如下:
生成的随机数为:
41 15 82 1 23 51 16 96 92 17
86 71 87 69 74 5 50 18 42 52
46 34 52 18 40 74 79 35 22 36
65 94 80 91 18 72 61 79 4 11
61 30 95 55 11 19 38 87 78 52
95 30 99 53 99 99 10 79 70 33
91 85 10 99 47 58 93 41 19 71
56 60 10 24 73 87 18 38 13 73
57 22 91 4 37 60 67 58 85 48
46 7 57 100 73 96 60 44 24 23
请按任意键继续. . .

❸ 如何产生正态分布的随机数

•最简单的:rejection sampling,思路很简单,也很容易实现,但效率较差
•较复杂的:inverse CDF,直接利用累积分布函数(CDF)的反函数生成随机数,但计算中牵扯到比较复杂的误差函数erf(非初等函数)
•更好的:Box-Muller算法,在很长时间内都是生成正态分布随机数的"标准"算法。Box-Muller算法的特点是效率高,并且计算过程比较简单(只用到了初等函数)。参见:Box-Muller transform
•目前最好的(相较于其它实用算法):ziggurat算法,效率很高,很多现代的编程语言都使用了这一算法。ziggurat并不是人名,其含义是“金字形神塔”,不是埃及那个金字塔,而是古代苏美尔人建造的类金字塔结构的神坛:神坛由多层平台构成,每层平台都呈矩形、卵形或正方形,且自下而上面积逐渐减小。ziggurat算法实际上是一种改进的、包含查表操作的rejection sampling。

热点内容
华为平板迅雷存储位置 发布:2025-07-13 11:54:44 浏览:712
javaweb经典 发布:2025-07-13 11:50:25 浏览:417
屏幕切换器怎么配置 发布:2025-07-13 11:49:43 浏览:245
我与预算法 发布:2025-07-13 11:20:28 浏览:426
线谱算法 发布:2025-07-13 11:17:15 浏览:838
怎么把文件上传百度云 发布:2025-07-13 11:09:18 浏览:556
光遇安卓玩家如何加苹果玩家 发布:2025-07-13 11:08:21 浏览:477
安卓哪里下载破解游戏 发布:2025-07-13 11:02:30 浏览:324
三菱如何查找未编译的程序 发布:2025-07-13 11:02:29 浏览:390
2013全国计算机二级c语言真题 发布:2025-07-13 10:58:17 浏览:175