In preparation for the lab, carefully review the code below and answer these questions.
- What does this program do?
- What is the program output if the user enters 10000 when prompted for the number of points?
- How would your answer to the above question change if the test in line 15 used <= rather than <?
- Print the homework or copy and paste the code below in your homework. Draw a box around each statement, and underline each expression, in the code. (Even though technically an assignment in Java is an expression, do not underline entire assignments.)
The Random component provides a pseudo-random number generator that generates numbers uniformly distributed in the [0.0,1.0) interval; the method call rnd.nextDouble() returns a pseudo-random number in the [0.0,1.0) interval. (In case you're not familiar with the notation here, [0.0,1.0) denotes an interval consisting of all real numbers between 0.0 inclusive and 1.0 exclusive, i.e., the set of all values x satisfying 0.0 ≤ x < 1.0.)
public static void main(String[] args) {
SimpleReader input = new SimpleReader1L();
SimpleWriter output = new SimpleWriter1L();
output.print("Number of points: ");
int n = input.nextInteger();
int ptsInInterval = 0, ptsInSubinterval = 0;
Random rnd = new Random1L();
while (ptsInInterval < n) {
double x = rnd.nextDouble();
ptsInInterval++;
if (x < 0.5) {
ptsInSubinterval++;
}
}
double estimate = (100.0 * ptsInSubinterval) / ptsInInterval;
output.println("Estimate of percentage: " + estimate + "%");
input.close();
output.close();
}