Soyez le premier à donner votre avis sur cette source.
Vue 13 705 fois - Téléchargée 580 fois
const uint64_t RR = RAND_MAX*RAND_MAX; double MonteCarlo(int n) { int k=0; for (int i=0; i<n; ++i) { uint64_t x=rand(), y=rand(); if (x*x + y*y <= RR) k++; } return 4.0*k/n; }
RAND_MAX = 32767 MonteCarlo: n= 10: pi=3.60000000000000 n= 100: pi=3.08000000000000 n= 1000: pi=3.08400000000000 n= 10000: pi=3.11320000000000 n= 100000: pi=3.13968000000000 n= 1000000: pi=3.13992400000000 n= 10000000: pi=3.14097520000000 n=100000000: pi=3.14138508000000 précis: pi=3.14159265358979 MonteCarlo: srand(478) n= 10: pi=3.20000000000000 n= 100: pi=3.08000000000000 n= 1000: pi=3.16000000000000 n= 10000: pi=3.16120000000000 n= 100000: pi=3.14732000000000 n= 1000000: pi=3.14112800000000 n= 10000000: pi=3.14182280000000 n=100000000: pi=3.14159260000000 précis: pi=3.14159265358979On constate que certaines initialisations de la fonction aléatoire donne des résultats un peu meilleurs.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.