Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please, using C language, not C+or C++. Thanks. Files to submit: pi.c Time it took Matthew to Complete: 20 mins Requriements Program must compile with

Please, using C language, not C+or C++. Thanks.

Files to submit: pi.c

Time it took Matthew to Complete: 20 mins

Requriements

Program must compile with both -Wall and -Werror options enabled

Submit only the files requested

Use doubles to store real numbers

Print all doubles to 2 decimal points unless stated otherwise

Restrictions

No global variables may be used

Your main function may only declare variables and call other functions

Description

For this problem you will be implementing a Monte Carlo method for the estimation of pi. Imagine that you have a circle of radius 1 whose center is at (0,0) surrounded by a square with sides of length 2 as pictured below

image text in transcribed

If we randomly choose points within the square the probability of a point being inside the circle is proportional to the area of the square that it occupies. This means that

student submitted image, transcription available below

Solving for pi we have student submitted image, transcription available below

The probability for pi can be approximiated by picking a large number of points between [-1, 1] and counting the number that are inside the circle. The number of points inside the circle divided by the the total number of points picked is the probability of being inside the circle

student submitted image, transcription available below

Report your answer to 3 digits after the decimal place

Assumptions

Input will not always be valid

If invalid input is received your program should continue to ask for more input until a valid value is entered

White space after desired input is allowed

You will probably want to wait until after we cover how to do this in class before handling it

Valid values for inputs

Seed: an integer

Number iterations: an integer greater than 0

Randomness

In order to match the outputs on Mimir you will need to make calls to rand in the exact order that I do

First generate a random number between [-1, 1] for the x axis

Then generate a random number between [-1,1] for the y axis

You should the following expression for generating a random double between LO and HI

LO + ((double) rand()) / (((double) RAND_MAX) / (HI - LO))

Hint it would be a good idea to make the above expression into a function

Numbers that fall exactly on the edge of the circle are considered to be inside the circle

Examples

Example 1

Enter the seed for the random number generator: 4 Enter the number of iterations to run: 10 The value of pi is 3.200.

Example 2

Enter the seed for the random number generator: -7 Enter the number of iterations to run: 2 The value of pi is 4.000.

Example 3

Enter the seed for the random number generator: -7 Enter the number of iterations to run: 10000 The value of pi is 3.144.

Example 4

Enter the seed for the random number generator: 3.45 Enter the seed for the random number generator: why Enter the seed for the random number generator: 12 Enter the number of iterations to run: cat Enter the number of iterations to run: -1 Enter the number of iterations to run: 3.141 Enter the number of iterations to run: 75 The value of pi is 3.147.

Show transcribed image text

(0,0) (0-1)

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Joe Celkos Data And Databases Concepts In Practice

Authors: Joe Celko

1st Edition

1558604324, 978-1558604322

More Books

Students also viewed these Databases questions