正态分布函数值的c语言代码怎么写double gaussian(double u) //用Box_Muller算法产生高斯分布的随机数
{
double r,t,z,x;
double s1,s2;
s1=(1.0+rand())/(RAND_MAX+1.0);
s2=(1.0+rand())/(RAND_MAX+1.0);
r=sqrt(-2*log(s2)/log(e));
t=2*pi*s1;
z=r*cos(t);
x=u+z*N;
return x;
}
以前写的一个函数,u是均值,N是方差
c语言有matlab中的normpdf和normcdf函数吗?normcdf函数用来获得正态分布的概率分布函数; normpdf用来获得正太分布的概率密度函数 。例如 , norcdf(0,0,1)的值是0.5 , 表示N(0) = 0.5 第二个参数是均值,第三个参数是标准差 。
高手进,c语言中如何得到服从正态分布的随机数?用boost的random库方便生成,以下是2个测试 , 分别生成50个数:
// μ = 30, δ^2 = 4
30.84 30.00 26.61 27.49 31.27
29.74 27.99 29.81 29.73 33.29
32.17 31.37 26.83 28.20 27.99
28.69 34.66 25.44 29.22 24.84
29.39 32.02 32.35 28.28 34.16
27.04 32.02 33.40 31.39 29.08
31.91 29.19 29.14 32.25 27.20
32.16 29.06 27.67 29.26 29.51
28.36 28.65 26.87 27.74 26.56
30.16 31.18 30.57 30.57 33.43
// μ = 30, δ^2 = 100
84.66 61.85 24.17 68.63 2.15
1.30 40.92 72.74 74.83 4.25
39.86 27.06 60.94 50.58 79.35
51.83 86.03 74.75 92.33 70.59
93.43 55.51 57.22 70.48 70.52
1.45 22.55 40.85 33.23 65.39
35.54 89.69 45.87 88.35 40.73
67.31 17.64 23.98 98.43 35.93
97.88 48.95 59.54 13.14 45.79
5.55 8.77 70.31 14.83 82.54
#include iostream
#include boost/random.hpp
using namespace std;
typedef boost::minstd_rand GenType;
typedef boost::normal_distribution NormalDis;
typedef boost::variate_generatorGenType, NormalDis RNG;
void Show(RNG rng)
{
cout.setf(ios_base::fixed);
cout.precision(2);
for(int i = 0; i50;)
{
double temp = rng();
if(temp = 1temp = 100)
{
couttemp' ';
if(++i % 5 == 0)
cout'\n';
}
else
continue;
}
coutendl;
}
int main()
{
GenType gt;
NormalDis dis(30, 2); // μ = 30, δ^2 = 4
RNG rng(gt, dis);
Show(rng);
rng.distribution() = NormalDis(30, 100); // μ = 30, δ^2 = 10000
Show(rng);
}
请问:C语言中怎么计算正态分布函数?C语言中计算一个数c语言中判断正态分布函数的N次方可以用库函数pow来实现 。
函数原型c语言中判断正态分布函数:double pow(double x, double y);
功能c语言中判断正态分布函数:计算x^yc语言中判断正态分布函数的值
返 回值:计算结果
举例如下:
double a = pow(3.14, 2);// 计算3.14的平方
注:使用pow函数时c语言中判断正态分布函数,需要将头文件#includemath.h包含进源文件中 。
如何用C语言生成一个正态分布的样本调试程序时,随机数种子可以设常数,例如srand(54321);
用 rand() 产生均匀分布随机数x1,x2
利用瑞利分布得正态分布随机数 y1,y2
再按要求线性缩放一下到[0.01,2] 区间 。
#include stdio.h
#include stdlib.h
#include math.h
#include time.h
main(){
#define N 100
double rd[N];
double x1,x2,y1,y2;
double pi2=6.28318530728,mx,mi,ave=0;
int i;
//srand(54321);
srand(time(NULL));
for (i=0;i=N-2;i=i+2){
x1=1.0*rand()/RAND_MAX;
x2=1.0*rand()/RAND_MAX;
y1= sqrt((-2.0*log(x1))) * cos(pi2*x2);
y2= sqrt((-2.0*log(x1))) * sin(pi2*x2);
rd[i]=y1;
rd[i+1]=y2;
}
mx=rd[0];mi=rd[0];
for (i=0;iN;i++){
if (rd[i]mx)mx=rd[i];
if (rd[i]mi)mi=rd[i];
}
//printf("mi=%lf mx=%lf\n",mi,mx);
for (i=0;iN;i++) rd[i] = (rd[i]-mi)/(mx-mi+0.001) * (2.0-0.01) + 0.01;
- mysql 判断 mysql的判断语句
- mongodb 创建表 mongodb创建数据库的语法
- mongo sql语句 mongodb写sql语句
- mysql显示表的语句 mysql表示例
- mysql内核 mysql核心语法
- mongodb数据库语句 mongodb数据库文档
- mongodb查询语句大全 mongodb查询最新时间
- mysql转换字符类型 mysql语句中转义
- mongodb nosql mongodb的sql语句
- SQL语句查询人数 sql语句查询redis
