CIS 110 Conditionals and Loops |
Programming Assignment |
The goal of this assignment is to write five short Java programs to gain practice with expressions, loops and conditionals.
% java Ordered 10 17 49 true % java Ordered 49 17 10 true % java Ordered 10 49 17 false
Write a program RGBtoCMYK.java that converts RGB to CMYK. Read three integers red, green, and blue (between 0 and 255, inclusive) from the command line, and print the equivalent CMYK values using these formulas:
Hint. Math.max(x, y) returns the maximum of x and y.
If all three red, green, and blue values are 0, the resulting color is black, so you should output 0.0, 0.0, 0.0 and 1.0 for the cyan, magenta, yellow and black values, respectively.% java RGBtoCMYK 75 0 130 // indigo cyan = 0.423076923076923 magenta = 1.0 yellow = 0.0 black = 0.4901960784313726
% java GCD 3 5 The GCD of 3 and 5 is 1. % java GCD 8 12 The GCD of 8 and 12 is 4. % java GCD 7 14 The GCD of 7 and 14 is 7. % java GCD 546 822 The GCD of 546 and 822 is 6.
% java Checkerboard 4 % java Checkerboard 5 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
% java RandomWalker 10 % java RandomWalker 20 (0, -1) (0, 1) (0, 0) (-1, 1) (0, 1) (-1, 2) (0, 2) (0, 2) (-1, 2) (1, 2) (-2, 2) (1, 3) (-2, 1) (0, 3) (-1, 1) (-1, 3) (-2, 1) (-2, 3) (-3, 1) (-3, 3) squared distance = 10 (-3, 2) (-4, 2) (-4, 1) (-3, 1) (-3, 0) (-4, 0) (-4, -1) (-3, -1) (-3, -2) (-3, -3) squared distance = 18
% java RandomWalkers 100 10000 % java RandomWalkers 400 2000 mean squared distance = 101.446 mean squared distance = 383.12 % java RandomWalkers 100 10000 % java RandomWalkers 800 5000 mean squared distance = 99.1674 mean squared distance = 811.8264 % java RandomWalkers 200 1000 % java RandomWalkers 1600 100000 mean squared distance = 195.75 mean squared distance = 1600.13064
As N increases, we expect the random walker to end up further and further away from the origin. But how much further? Use RandomWalkers to formulate a hypothesis as to how the mean squared distance grows as a function of N. Use a variety of values for T (as shown above) for testing the program, but for this analysis, use T = 100,000 trials to get a sufficiently accurate estimate.
Remark: this process is a discrete version of a natural phenomenon known as Brownian motion. It serves as a scientific model for an astonishing range of physical processes from the dispersion of ink flowing in water, to the formation of polymer chains in chemistry, to cascades of neurons firing in the brain.
Checklist.
Don't forget to read the checklist.
Submission.
Submit
the
files Ordered.java, RGBtoCMYK.java, GCD.java,
Checkerboard.java, RandomWalker.java
and RandomWalkers.java.
Finally, submit
a readme_loops.txt file and answer
the questions.