APPROXIMATION PI PAR LA MÉTHODE DE MONTE CARLO

Signaler
Messages postés
79
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
31 octobre 2011
-
Messages postés
79
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
31 octobre 2011
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45945-approximation-pi-par-la-methode-de-monte-carlo

Messages postés
79
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
31 octobre 2011
2
Petite chose que j'apprécis pas beaucoup c'est le titre donné dans le code : "Approximation de pi par la méthode de monte carlo crée par blackbird"
tu pourrais au moins par humilité mettre : "Approximation de pi par blackbird grace à la méthode de monte carlo"

Tu peux aussi retirer des includes stdlib.h car tu n'y fait jamais appel...

Après coté performances (vu que tu utilise le QueryPerformance c'est que tu dois la rechercher) tu as le printf qui est très gourmand en temps d'exécution... donc donner le résultat qu'à la fin te ferait gagner beaucoup de temps d'exécution ! (et pas qu'un peu si tu souhaite obtenir une approximation précise) Mais si tu souhaite pouvoir afficher périodiquement l'approximation actuel implémente un peu de directx ou opengl à ton application (ainsi le gros de exécution de l'affichage est pris en charge par le processeur de ta carte graphique... c'est performant et en plus tu peux avoir à l'écran un truc sympa et surtout ça rend fou les prof à l'université, qui ne connaissent pas la programmation de moteur graphique, quand ils voyent même pas de différence de temps d'exécution entre avec et sans l'affichage périodique du résultat actuel^^)

Enfin pour ce qui s'intêresse à pi cette méthode statistique n'est pas la plus performante mais elle à l'avantage d'avoir son résultat facilement réutilisable et de pouvoir être facilement déployé sur un réseau :

srand(time(NULL));
do {
CoordonneeX = rand()/(RAND_MAX+1.0);
CoordonneeY = rand()/(RAND_MAX+1.0);
if (CoordonneeX * CoordonneeX + CoordonneeY * CoordonneeY < 1)
NbrePointDansCercle ++;
Compteur++;
}while(Compteur<=NbrePoint);

et on sauvegarde NbrePointDansCercle et Compteur qu'on peut par exemple récupérer par réseau depuis tout plein d'ordinateur... le serveur n'ayant plus qu'à faire le calcul final (c'est aussi une partie très sympa à étudier vu que le but est de rechercher le plus grand nombre significatif de pi... donc les tailles de variables classiques sont dépassées ce qui peu être résolu avec un tableau...)
on rajoute au projet le multithread et on en fait un écran de veille en remplaçant "while(Compteur<=NbrePoint);" par temps que la souris bouge pas... puis envois des 2 variables sur un serveur web... ça peu faire un projet sympa^^ mais ça restera tout de même une méthode très peu performante pour calculer pi ;)