|
|
That means it can return any values between 0 and 1, including 0. but not including 1.
public class Random1 { public static void main(String[] args) { for ( int i = 0 ; i < 10; i++ ) { System.out.println( Math.random() ); // Print a random number } } } |
How to run the program:
|
Example: Monte Carlo experiment
|
|
|
|
We will now design a Monte Carlo experiment that can be used to find an estimate for π.
Facts:
|
|
|
|
Probability [ dart hits yellow portion ] = Area of the quarter circle = π/4 |
|
We can use a Monte Carlo Method (simulating throwing darts) to estimate this probability of success !
int i; int nThrows = 0; int nSuccess = 0; /* ============================== Throw a large number of darts ============================== */ for (i = 0; i < aLargeNumber; i++) { "Throw a dart"; nThrows++; if ( "dart lands inside quarter circle" ) nSuccess++; } /* ================================================================= Estimate the probability of a dart landing inside quarter circle ================================================================== */ System.out.println("Pi/4 = " + (double)nSuccess/(double)nThrows ); |
|
|
public class ComputePi1 { public static void main(String[] args) { int i; int nThrows = 0; int nSuccess = 0; double x, y; for (i = 0; i < 1000000 ; i++) { x = Math.random(); // Throw a dart y = Math.random(); nThrows++; if ( x*x + y*y <= 1 ) nSuccess++; } System.out.println("Pi/4 = " + (double)nSuccess/(double)nThrows ); System.out.println("Pi = " + 4*(double)nSuccess/(double)nThrows ); } } |
Output:
Pi/4 = 0.785784 Pi = 3.143136 |
How to run the program:
|