/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.Random;
import java.util.stream.Stream;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
final int count = 10_000_000;
final int doorsCount = 3;
boolean changeDoor = true;
int wins = 0;
for (int i = 0; i < count; i++) {
int winingDoor = random.nextInt(doorsCount);
int selectedDoor = random.nextInt(doorsCount);
Integer closedDoor
= Stream.
of(0,
1,
2).
filter(door
-> door
!= winingDoor
&& door
!= selectedDoor
) .findAny()
.get();
if (random.nextBoolean()) {
int newDoorNumber = 3 - closedDoor - selectedDoor;
if (newDoorNumber == winingDoor) {
wins++;
}
} else {
if (selectedDoor == winingDoor) {
wins++;
}
}
}
System.
out.
printf("Doors: %s, wins: %s, percent %s", count, wins,
(double) wins
/ count
); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOwppbXBvcnQgamF2YS51dGlsLnN0cmVhbS5TdHJlYW07CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCWZpbmFsIGludCBjb3VudCA9IDEwXzAwMF8wMDA7CiAgICAgICAgZmluYWwgaW50IGRvb3JzQ291bnQgPSAzOwogICAgICAgIGJvb2xlYW4gY2hhbmdlRG9vciA9IHRydWU7CiAgICAgICAgaW50IHdpbnMgPSAwOwogICAgICAgIFJhbmRvbSByYW5kb20gPSBuZXcgUmFuZG9tKCk7CgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewogICAgICAgICAgICBpbnQgd2luaW5nRG9vciA9IHJhbmRvbS5uZXh0SW50KGRvb3JzQ291bnQpOwoKICAgICAgICAgICAgaW50IHNlbGVjdGVkRG9vciA9IHJhbmRvbS5uZXh0SW50KGRvb3JzQ291bnQpOwogICAgICAgICAgICBJbnRlZ2VyIGNsb3NlZERvb3IgPSBTdHJlYW0ub2YoMCwgMSwgMikuZmlsdGVyKGRvb3IgLT4gZG9vciAhPSB3aW5pbmdEb29yICYmIGRvb3IgIT0gc2VsZWN0ZWREb29yKQogICAgICAgICAgICAgICAgICAgIC5maW5kQW55KCkKICAgICAgICAgICAgICAgICAgICAuZ2V0KCk7CgogICAgICAgICAgICBpZiAocmFuZG9tLm5leHRCb29sZWFuKCkpIHsKICAgICAgICAgICAgICAgIGludCBuZXdEb29yTnVtYmVyID0gMyAtIGNsb3NlZERvb3IgLSBzZWxlY3RlZERvb3I7CiAgICAgICAgICAgICAgICBpZiAobmV3RG9vck51bWJlciA9PSB3aW5pbmdEb29yKSB7CiAgICAgICAgICAgICAgICAgICAgd2lucysrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkRG9vciA9PSB3aW5pbmdEb29yKSB7CiAgICAgICAgICAgICAgICAgICAgd2lucysrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50ZigiRG9vcnM6ICVzLCB3aW5zOiAlcywgcGVyY2VudCAlcyIsIGNvdW50LCB3aW5zLCAoZG91YmxlKSB3aW5zIC8gY291bnQpOwoJfQp9