Computer Science 523
Advanced Programming
Summer 2014, The College of Saint Rose
MonteCarloPi BlueJ Project
Click here to download a BlueJ project for MonteCarloPi.
MonteCarloPi Source Code
The Java source code for MonteCarloPi is below. Click on a file name to download it.
/*
* Example MonteCarloPi: approximate pi using a Monte Carlo method
*
* Jim Teresco, The College of Saint Rose, CSC 202, Fall 2012
*
* $Id: MonteCarloPi.java 2368 2014-05-20 13:59:03Z terescoj $
*/
import java.util.Random;
import java.util.Scanner;
public class MonteCarloPi {
public static void main(String[] args) {
// create our Scanner and Random objects
Scanner keyboard = new Scanner(System.in);
Random random = new Random();
// get the number of points to generate
System.out.print("How many points to generate for this approximation of pi? ");
int numPoints = keyboard.nextInt();
// variable to keep track of the number of the generated points
// that were inside the unit circle
int inCircle = 0;
// now loop to generate and check numPoints points
for (int pointNum = 1; pointNum <= numPoints; pointNum++) {
// generate our x,y coordinates
double x = random.nextDouble();
double y = random.nextDouble();
// distance from the origin:
double dist = Math.sqrt(x * x + y * y);
// check if it's less than or equal to 1
if (dist <= 1) {
inCircle++;
}
}
// our pi approximation
double apxPi = (double)inCircle / numPoints * 4;
System.out.println("Our approximation of pi: " + apxPi);
}
}