Question: In Python Background Info: Imagine a circle inscribed within a square that spans the area where -1 ? x ? 1 and -1 ? y
In Python
Background Info:
Imagine a circle inscribed within a square that spans the area where -1 ? x ? 1 and -1 ? y ? 1. The area of the inscribed circle, whose radius is 1.0 would be ?.
If you were to throw darts at random locations in the square, only some of them would hit inside the circle inscribed within it. The ratio
area of the circle ------------------ area of the square
can be estimated by the ratio
number of darts that hit inside the circle ------------------------------------------ total number of darts thrown
As the number of darts increases, the second ratio, above, gets closer and closer to the first ratio. Since three of the four quantities involved are known, they can be used to approximate the area of the circle this in turn can be used to approximate ?
Functions to write
For this problem, you will write two functions (each based on loops) that use different tests for determining how many random darts to throw: forPi(n) and whilePi(error). One of the common elements of the two functions is to determine if a dart hits within the circle. Because the dart is thrown randomly, we need to use random numbers we learned earlier in the semester. You will need to import the random number package, you will also need to use the uniform() random function to determine if a pair of x and y (coordinates where the dart hits) is within the circle.
Task #1 : forPi
The forPi(n) function takes in a positive integer n and should throw n darts at the square. Each time a dart is thrown, this function should print
the number of darts thrown so far
the number of darts thrown so far that have hit inside the circle
the resulting estimate of ?
Return value The forPi function should return the final resulting estimate of ? after n throws.
Task #2: whilePi
The whilePi(error) function, on the other hand, will take in a positive floating-point value, error, and should then continue to throw darts at the dartboard (the square). It should only stop when the absolute difference between the estimate of ? and the real value of? is less than error.
As with the forPi function, this function should print
the number of darts thrown so far
the number of darts thrown so far that have hit inside the circle
the resulting estimate of ?
after each dart throw it makes.
Return value The whilePi function should return the number of darts thrown in order to reach the input accuracy.
Note that the whilePi function requires the actual, known value of ? in order to determine whether or not its estimate is within the error range. Although this would not be available for estimating an unknown constant, you may include the line
import math
in your code and then use the value of math.pi as the actual value of ?.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
