Bladeren bron

lab completed with printout formatted

Christian Sheridan 5 jaren geleden
bovenliggende
commit
a05064d53c

+ 18
- 7
src/main/java/Sheridan/Christian/Bins.java Bestand weergeven

@@ -1,5 +1,5 @@
1 1
 package Sheridan.Christian;
2
-
2
+import java.math.*;
3 3
 import java.util.HashMap;
4 4
 import java.util.Map;
5 5
 
@@ -7,19 +7,30 @@ public class Bins {
7 7
 
8 8
     HashMap<Integer, Integer> bins;
9 9
 
10
-    public Bins(int min, int max){
10
+    public Bins(int min, int max) {
11 11
 
12 12
         bins = new HashMap<Integer, Integer>();
13 13
         initializedBins(min, max);
14 14
     }
15 15
 
16
-    private void initializedBins(Integer min, Integer max){
17
-        for (int i = min; i <=max; i++){
16
+    private void initializedBins(Integer min, Integer max) {
17
+        for (int i = min; i <= max; i++) {
18 18
             bins.put(i, 0);
19 19
         }
20 20
     }
21 21
 
22
-    public void trackTosses(int sum){
23
-        bins.put(sum, bins.get(sum)+1);
22
+    public void trackTosses(int sum) {
23
+        bins.put(sum, bins.get(sum) + 1);
24
+    }
25
+
26
+
27
+    public int getBin(int number) {
28
+        return bins.get(number);
29
+    }
30
+
31
+    public void incrementBin(int number){
32
+        int value = bins.get(number);
33
+        value++;
34
+        bins.put(number, value);
24 35
     }
25
-}
36
+}

+ 2
- 2
src/main/java/Sheridan/Christian/Main.java Bestand weergeven

@@ -2,8 +2,8 @@ package Sheridan.Christian;
2 2
 
3 3
 public class Main {
4 4
     public static void main(String[] args) {
5
-        Simulation simulation = new Simulation(2,10);
5
+        Simulation simulation = new Simulation(2,1000000);
6 6
         simulation.runSimulation();
7
-        System.out.println(simulation.bin.bins);
7
+        simulation.printResults();
8 8
     }
9 9
 }

+ 35
- 7
src/main/java/Sheridan/Christian/Simulation.java Bestand weergeven

@@ -7,20 +7,48 @@ public class Simulation {
7 7
     Dice dice;
8 8
     Bins bin;
9 9
 
10
-    public Simulation(int numberOfDice, int numberOfTosses){
10
+    public Simulation(int numberOfDice, int numberOfTosses) {
11 11
         this.numberOfDice = numberOfDice;
12 12
         this.numberOfTosses = numberOfTosses;
13 13
         this.dice = new Dice(numberOfDice);
14
-        this.bin = new Bins(numberOfDice, numberOfDice*6);
14
+        this.bin = new Bins(numberOfDice, numberOfDice * 6);
15 15
     }
16 16
 
17
-    public void runSimulation(){
18
-        for (int i = 0; i<numberOfTosses; i++){
17
+    public void runSimulation() {
18
+        for (int i = 0; i < numberOfTosses; i++) {
19 19
             bin.trackTosses(dice.tossAndSum());
20 20
         }
21 21
     }
22 22
 
23
-    public Bins returnResults(){
24
-        return this.bin;
23
+    public void printResults() {
24
+        System.out.println("***");
25
+        System.out.println("Simulation " + numberOfDice + " dice tossed for " + numberOfTosses);
26
+        System.out.println("***");
27
+        System.out.println();
28
+
29
+        for (int i = numberOfDice; i <= numberOfDice * 6; i++) {
30
+            double average = (double) bin.getBin(i) / numberOfTosses;
31
+            String stars = "";
32
+            if (average >= 0 && average < 0.025) {
33
+                stars = "*";
34
+            }
35
+            if(average > 0.025 && average < 0.05){
36
+                stars = "**";
37
+            }
38
+            if(average > 0.050 && average <0.075){
39
+                stars = "****";
40
+            }
41
+            if(average > .075 && average<.1){
42
+                stars = "******";
43
+            }if(average > .1 && average<.125){
44
+                stars = "********";
45
+            }if(average > .125 && average<.15){
46
+                stars = "**********";
47
+            }if(average > .15 && average<.175){
48
+                stars = "************";
49
+            }
50
+            System.out.println(String.format("%2d :", i) + String.format("%10d: ", bin.getBin(i))
51
+                    + String.format("%.2f ",(double) bin.getBin(i)/numberOfTosses) + stars);
52
+        }
53
+        }
25 54
     }
26
-}