函数原型:double pow(double x, double y)
功 能:计算x^y的值
返 回 值:计算结果
举例如下:
double a = pow(3.14, 2) // 计算3.14的平方
注:使用pow函数时,需要将头文件#include<math.h>包含进源文件中。
调试程序时,随机数种子可以设常数,例如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=0i<=N-2i=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=0i<Ni++){
if (rd[i]>mx)mx=rd[i]
if (rd[i]<mi)mi=rd[i]
}
//printf("mi=%lf mx=%lf\n",mi,mx)
for (i=0i<Ni++) rd[i] = (rd[i]-mi)/(mx-mi+0.001) * (2.0-0.01) + 0.01
for (i=0i<N-2i=i+2) printf("%lf %lf\n",rd[i],rd[i+1])
return 0
}