Monte-Carlo dapat
digunakan untuk menghitung nilai pi
(π). Prinsipnya adalah mengacak sebaran partikel pada sebuah kotak yang
menutupi lingkaran, kemudian menghitung fraksi antara partikel yang berada
dalam lingkaran terhadap total partikel yang disebar. Berikut ilustrasinya :
Gambar 1. Ilustrasi menghitung pi dengan metode
Monte-Carlo.
Jika N adalah jumlah total partikel yang disebar, dan No adalah adalah jumlah partikel yang
berada di area lingkaran, maka untuk N
yang sangat besar berlaku hubungan :
Sehingga nilai π dapat diestimasi dengan
|
|
|
Berikut contoh pseudo-code yang dapat
digunakan untuk menentukan nilai pi (π).
/*compile : g++ pi.cpp -o pirun :./pi
created :05-03-2016 by [KAMIRUL]
*/
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <cmath>
using namespace std;
int main()
{
srand( time(0) ); //avoid same generated number
int N = 100000;
double m = 0; //counter partikel
double R=1;
for (int i = 0; i < N; ++i)
{
double x = ((double) rand() / (RAND_MAX))*R;
double y = ((double) rand() / (RAND_MAX))*R;
double r = sqrt(pow(x,2)+pow(y,2));
if (r<R) {
m=m+1; //ketika masih ada air
}
}
double pi=(m/N)*4;
cout << "N-partikel = "<<N<< "\n"<< "\n";
cout << "pi = "<<pi<< "\n";
return 0;
}