previous | start | next

File Needle.java

1 import java.util.Random;
2
3 /**
4     This class simulates a needle in the Buffon needle experiment.
5 */
6 public class Needle
7 {
8    /**
9        Constructs a needle.
10     */
11    public Needle()
12    {
13       hits = 0;
14       generator = new Random();
15    }
16
17    /**
18        Drops the needle on the grid of lines and 
19        remembers whether the needle hit a line.
20     */
21    public void drop()
22    {
23       double ylow = 2 * generator.nextDouble();
24       double angle = 180 * generator.nextDouble();
25       
26       // compute high point of needle
27       
28       double yhigh = ylow + Math.sin(Math.toRadians(angle));
29       if (yhigh >= 2) hits++;    
30       tries++;
31    }
32
33    /**
34        Gets the number of times the needle hit a line.
35       @return the hit count
36     */
37    public int getHits()
38    {
39       return hits;
40    }
41
42    /**
43        Gets the total number of times the needle was dropped.
44       @return the try count
45     */
46    public int getTries()
47    {
48       return tries;
49    }
50         
51    private Random generator;
52    private int hits;
53    private int tries;
54 }


previous | start | next