Difference between revisions of "W1292 Useful Randomness"

From Coder Merlin
Line 21: Line 21:
# The value of π is four times this value (because the area of the total square is 2 units x 2 units)
# The value of π is four times this value (because the area of the total square is 2 units x 2 units)


== Exercises ==
== Prepare ==
Create a new directory in your ~/Experiences directory named "project-1292".
Create a new directory in your ~/Experiences directory named "project-1292".
Then, use emacs to edit a file named "main.swift" to perform the following exercises.
Use emacs to edit a file named "main.swift":
{{ConsoleLine|zay-vin@codermerlin:~$ |cd ~/Experiences}}
{{ConsoleLine|zay-vin@codermerlin:~$ |cd ~/Experiences}}
{{ConsoleLine|zay-vin@codermerlin:~/Experiences$ |mkdir project-1292}}
{{ConsoleLine|zay-vin@codermerlin:~/Experiences$ |mkdir project-1292}}
Line 32: Line 32:




# Estimate the value of π by performing the above experiment
{{Observe|Section 1|
## Throw 100 darts.  What result do you obtain?
Complete your program, then answers these questions.
## Throw 1000 darts.  What result do you obtain?  How is this different from your previous result?
# Estimate the value of π using your program
# How many digits are you able to accurately estimate π by varying ''N''?
## Throw 100 darts (N {{Equal}} 100).  What result do you obtain?
## Throw 1000 darts (N {{Equal}} 1000).  What result do you obtain?   
# How is the second result different from your previous result?
# How large should N be to accurately estimate π to five digits?
# How important is it that the dart be "thrown" randomly?
# How important is it that the dart be "thrown" randomly?
}}
== Exercises ==
# Write a program that randomly throws a series of N darts at a virtual dartboard as described above.  At the conclusion of throwing N darts, the program should print an estimate for the value of π.
# Answer all journal questions.


{{Hint|
{{Hint|

Revision as of 18:17, 5 April 2020

Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder
Random Bitmap
Kuntze-Konicz Fortune

Prerequisites[edit]

Research[edit]

Background[edit]

Unit circle 3
The value of π can be calculated by:

  1. Randomly throwing "darts" at a unit circle
  2. Counting the total number of "darts", N
  3. Counting the number of "darts" that fall within the unit circle, C
  4. The ratio of the area inside the circle to the total area is C/N
  5. The value of π is four times this value (because the area of the total square is 2 units x 2 units)

Prepare[edit]

Create a new directory in your ~/Experiences directory named "project-1292". Use emacs to edit a file named "main.swift":

zay-vin@codermerlin:~$  cd ~/Experiences

zay-vin@codermerlin:~/Experiences$  mkdir project-1292

zay-vin@codermerlin:~/Experiences$  cd project-1292

zay-vin@codermerlin:~/Experiences/project-1292$  touch main.swift

zay-vin@codermerlin:~/Experiences/project-1292$  makeSwiftMake

zay-vin@codermerlin:~/Experiences/project-1292$  emacs main.swift


ObserveObserveIcon.png
Observe, Ponder, and Journal: Section 1

Complete your program, then answers these questions.

  1. Estimate the value of π using your program
    1. Throw 100 darts (N = 100). What result do you obtain?
    2. Throw 1000 darts (N = 1000). What result do you obtain?
  2. How is the second result different from your previous result?
  3. How large should N be to accurately estimate π to five digits?
  4. How important is it that the dart be "thrown" randomly?

Exercises[edit]

  1. Write a program that randomly throws a series of N darts at a virtual dartboard as described above. At the conclusion of throwing N darts, the program should print an estimate for the value of π.
  2. Answer all journal questions.


Hint.pngHelpful Hint

You can run your program with:

zay-vin@codermerlin:~/Experiences/project-1292$  run

Key Concepts[edit]

Key ConceptsKeyConceptsIcon.png
  • Random numbers meet the following two criteria:
    • Even distribution over a defined interval
    • Impossible to predict subsequent values based upon previous values
  • Random numbers can be very useful in certain circumstances