Поэтому, когда я скомпилирую этот код (используя твистер Мерсенна, найденный здесь: http://www -personal.umich.edu / ~ wagnerr / MersenneTwister.html ):
#include <iostream>
#include <cmath>
#include "mtrand.h"
using namespace std;
double pythag(double x, double y) {
double derp=0;
derp=(x*x)+(y*y);
derp=sqrt(derp);
}
int main() {
double x=0;
double y=0;
double pi=0;
double hold1=0;
double hold2=0;
double hits=0;
MTRand mt;
mt.seed();
// cout.precision(10);
for(long i=1; i<=100000000000l; i++) {
x=abs(mt.rand());
y=abs(mt.rand());
if(pythag(x,y)<=1) {
hits++;
}
if(i%100000l==0) {
pi=(4*hits)/i;
cout << "\r" << i << " " << pi ;
}
}
cout <<"\n";
return 42;
}
Использование g ++ ("g ++ pi.cc -o pi")
И запустив получившееся приложение, я получаю желаемый результат - подсчет числа Пи, рассчитанный методом Монте-Карло.
Но, когда я компилирую с помощью mingw g ++ («i686-pc-mingw32-g ++ -static-libstdc ++ -static-libgcc pi.cc -o pi.exe»)
Я всегда получаю счет 0.
Любая помощь с благодарностью.