1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Node genererVoisin(Node nodeCentral)
{
Node nodeVoisin;
int sigma = 1;
// On récupère deux nombres pseudo-aléatoires indépendants selon une loi uniforme sur l'intervalle [0;1]
double randNumUni = ((double) rand())/((double) RAND_MAX);
double randNumBi = ((double) rand())/((double) RAND_MAX);
// On récupère un nombre pseudo-aléatoire selon une loi normale centrée réduite
// (Paramètres : moyenne = 0, écart-type = 1)
// Utilisation de l'algorithme de Box-Muller
double randNumNormX = sqrt(-2.0*log(randNumUni))*cos(DEUX_PI*randNumBi);
double randNumNormY = sqrt(-2.0*log(randNumUni))*sin(DEUX_PI*randNumBi);
nodeVoisin.x = (int)nodeCentral.x + sigma * randNumNormX;
nodeVoisin.y = (int)nodeCentral.y + sigma * randNumNormY;
return nodeVoisin;
} |
Partager