Skip to content
Extraits de code Groupes Projets
Valider ede77458 rédigé par Hugo TRACHINO's avatar Hugo TRACHINO
Parcourir les fichiers

montecarlo computing pi like a boss

parent 13864eb7
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -14,7 +14,7 @@ long uniform() { ...@@ -14,7 +14,7 @@ long uniform() {
lo+= (hi & 0x7FFF) << 16; lo+= (hi & 0x7FFF) << 16;
lo+= hi >> 15; lo+= hi >> 15;
if (lo > 0x7FFFFFFFF) if (lo > 0x7FFFFFFF)
lo -= 0x7FFFFFFF; lo -= 0x7FFFFFFF;
seed=(long) lo; seed=(long) lo;
return seed ; return seed ;
...@@ -31,7 +31,6 @@ void store_res(long * res, int freqs[], int nRNG, int nCuts){ ...@@ -31,7 +31,6 @@ void store_res(long * res, int freqs[], int nRNG, int nCuts){
freqcsv.open("gva_freqs.csv"); freqcsv.open("gva_freqs.csv");
int i; int i;
for (i = 0; i < nRNG; i ++){ for (i = 0; i < nRNG; i ++){
printf("i = %d, nRNG= %d\n ", i, nRNG);
freqs[res[i]%nCuts] ++; freqs[res[i]%nCuts] ++;
myfile << res[i]; myfile << res[i];
myfile << "\n"; myfile << "\n";
......
#include "fcts.h"
int main(int argc, char ** argv){
int i, nRNG;
double nAcc=0;
if(argc < 2){
return -1;
}
nRNG = atoi(argv[1]);
double x, y;
long res[nRNG*2];
double max=0;
for (i = 0; i < nRNG; i++){
x = ((double) uniform())/(double)0x7FFFFFFF;
y = ((double) uniform())/(double)0x7FFFFFFF;
printf("x= %lf", x);
if (x > max)
max = x;
if (x *x + y * y <= 1){
nAcc ++;
}
res[2*i] = x;
res[2*i+1]=y;
}
printf("\n max = %lf \n", max);
int freqs[10];
for (i = 0; i < 10 ; i++)
freqs[i] = 0;
store_res(res, freqs, nRNG, 10);
double pi = 4 * nAcc/nRNG;
printf("%lf \n", pi);
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter