fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import java.util.Random;
  7. import java.util.stream.Stream;
  8.  
  9.  
  10. /* Name of the class has to be "Main" only if the class is public. */
  11. class Ideone
  12. {
  13. public static void main (String[] args) throws java.lang.Exception
  14. {
  15. final int count = 10_000_000;
  16. final int doorsCount = 3;
  17. boolean changeDoor = true;
  18. int wins = 0;
  19. Random random = new Random();
  20.  
  21. for (int i = 0; i < count; i++) {
  22. int[] doors = new int[doorsCount];
  23. int winingDoor = random.nextInt(doorsCount);
  24. doors[winingDoor] = 1;
  25.  
  26. int selectedDoor = random.nextInt(doorsCount);
  27. Integer closedDoor = Stream.of(0, 1, 2).filter(door -> door != winingDoor && door != selectedDoor)
  28. .findAny()
  29. .get();
  30.  
  31. if (changeDoor) {
  32. int newDoorNumber = 3 - closedDoor - selectedDoor;
  33. if (newDoorNumber == winingDoor) {
  34. wins++;
  35. }
  36. } else {
  37. if (selectedDoor == winingDoor) {
  38. wins++;
  39. }
  40. }
  41.  
  42. }
  43. System.out.printf("Doors: %s, wins: %s, percent %s", count, wins, (double) wins / count);
  44. }
  45. }
Success #stdin #stdout 0.87s 122180KB
stdin
Standard input is empty
stdout
Doors: 10000000, wins: 6668270, percent 0.666827