1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
// vargauss.cpp*: définit les fonctions exportées pour l'application DLL.
//
#include "stdafx.h"
#include <windows.h>
#include <cstdlib>
#include <iomanip>
#include <stdlib.h>
#include <ctime>
#include <cmath>
#include <stdio.h>
//#include <vector>
// *************************************
double randomUniform (double _iMin,double _iMax)
{
// return (_iMin + (rand () % (_iMax-_iMin+1)));
return ((_iMax-_iMin)*(rand()/(double)RAND_MAX)+_iMin);
}
// *************************************
void boxMuller(double &px1,double &px2, double _moyenne, double _sigma)
{
double U1=randomUniform(0,1);
double U2=randomUniform(0,1);
const double g_Pi = 3.14159265358979323846;
px1 = sqrt(-2 * log(U2)) * cos(2 * g_Pi * U1) * _sigma + _moyenne;
px2 = sqrt(-2 * log(U2)) * sin(2 * g_Pi * U1) * _sigma + _moyenne;
}
// ++++++++++++++++++++++++++++++++++++++++
int main(int argc)
{
srand(time(NULL));
double moyenne = 0;
double sigma = 10/3;
double x1, x2;
boxMuller(x1,x2,moyenne,sigma) ;
return 0;
} |
Partager