/* * File: PiApproximation.java * -------------------------- * This progam computes an approximation to pi by simulating * a dart board, as described in the handout. The general * technique is called Monte Carlo integration. * * Author: CS1MD3, Nov. 2008 */ import acm.program.*; import acm.util.*; public class PiApproximation extends ConsoleProgram { public void run() { int inside = 0; for (int i = 0; i < NDARTS; i++) { double x = rgen.nextDouble(-1.0, +1.0); double y = rgen.nextDouble(-1.0, +1.0); if (x * x + y * y < 1.0) inside++; } double pi = 4.0 * inside / NDARTS; println("Pi is approximately " + pi); } /* Private constant */ private static final int NDARTS = 10000; /* Number of darts to throw */ /* Private instance variables */ private RandomGenerator rgen = RandomGenerator.getInstance(); }