Advertisement
Guest User

Untitled

a guest
Jul 21st, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5.  
  6. class RNG {
  7.  
  8. public static int getRandomNumber(int min, int max) {//random number generator
  9. Random rand = new Random();
  10. return rand.nextInt((max - min) + 1) + min;
  11. }
  12.  
  13. }
  14.  
  15. public class Probability {
  16. public static void main(String[] args) {
  17. int silver = 0, golden = 0, runs = 1000000;
  18. String result;
  19.  
  20. for (int i = 0; i < runs; i++) {//a million runs just to be more consistent
  21. result = testRun();
  22.  
  23. if (result == "Nothing") {
  24. i--;//we ignore entirely runs when we draw silver from the first box
  25. continue;
  26. } else if (result == "Silver") {//if the second draw is silver
  27. silver++;
  28. } else if (result == "Golden")//if the second draw is gold
  29. golden++;
  30. }
  31. System.out.println("Results from " + runs + " simulation runs :");
  32. System.out.println("Golden:" + golden);
  33. System.out.println("Silver:" + silver);
  34. }
  35.  
  36. static String testRun() {
  37. List<Box> list = new ArrayList<Box>();
  38.  
  39. Box box1 = new Box("Golden", "Golden");
  40. Box box2 = new Box("Silver", "Golden"); //order doesn't matter, we pick at random
  41. Box box3 = new Box("Silver", "Silver");
  42.  
  43. list.add(box1);
  44. list.add(box2);
  45. list.add(box3);
  46.  
  47. int boxChosen = RNG.getRandomNumber(0, 2); //boxes 0, 1, 2
  48. String result = list.get(boxChosen).returnBall();
  49.  
  50. String result2;
  51. if (result == "Golden") {//first box draw is Golden
  52. result2 = list.get(boxChosen).returnBall();//we draw another one
  53. return result2;//return the result of the second draw
  54. }
  55. else {
  56. return "Nothing"; //this means first result was not Silver
  57. }
  58. }
  59. }
  60.  
  61. class Box {
  62. int isEmpty = 2;
  63. List<String> list = new ArrayList<>();
  64.  
  65. public Box(String box1, String box2) {
  66. list.add(box1);
  67. list.add(box2);
  68. }
  69.  
  70. public String returnBall() {
  71. if (isEmpty == 0) {
  72. return "Empty Ball !";
  73. } else if (isEmpty == 1) {
  74. String result = list.get(0);
  75. list.remove(0);
  76. isEmpty--;
  77. return result;
  78. } else {
  79. int randomNum = RNG.getRandomNumber(0, 1);
  80. String result = list.get(randomNum);
  81. list.remove(result);
  82. isEmpty--;
  83. return result;
  84. }
  85. }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement