⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 polar.cpp

📁 产生N(0,1)的高斯伪随机数的程序,所用方法为极方法
💻 CPP
字号:
#include<iostream.h>
#include<fstream.h>
#include<math.h>
#include<windows.h>
#include<time.h>
#define GAUSSIAN_NUMBER 1000
double uniform()
{
	int seed2;
	double seed1;
	srand((unsigned)time(NULL));
	seed1=double(rand());
    seed1=seed1/double(RAND_MAX+1);
	seed2=rand();
	seed2=seed2%2;
	if(seed2==0) 
		seed1=-seed1;
	return seed1;
}
double polar()
{
	double x,y,d;
	double gaussian;
	do
	{
		x=uniform();
		y=uniform();
		d=x*x+y*y;
	}
	while(d==0||d>1.0);
	//gaussian=x*sqrt(-2*log(d)/d);
	//return gaussian;
	return d;
}
void main()
{
	int i;
	double gaussian[GAUSSIAN_NUMBER];
	for(i=0;i<GAUSSIAN_NUMBER;i++)
	{
		gaussian[i]=polar();
		cout<<gaussian[i];
	}
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -