/* 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[] doors = new int[doorsCount];
int winingDoor = random.nextInt(doorsCount);
doors[winingDoor] = 1;
int selectedDoor = random.nextInt(doorsCount);
Integer closedDoor
= Stream.
of(0,
1,
2).
filter(door
-> door
!= winingDoor
&& door
!= selectedDoor
) .findAny()
.get();
if (changeDoor) {
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
); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOwppbXBvcnQgamF2YS51dGlsLnN0cmVhbS5TdHJlYW07CgoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlmaW5hbCBpbnQgY291bnQgPSAxMF8wMDBfMDAwOwogICAgICAgIGZpbmFsIGludCBkb29yc0NvdW50ID0gMzsKICAgICAgICBib29sZWFuIGNoYW5nZURvb3IgPSB0cnVlOwogICAgICAgIGludCB3aW5zID0gMDsKICAgICAgICBSYW5kb20gcmFuZG9tID0gbmV3IFJhbmRvbSgpOwoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKICAgICAgICAgICAgaW50W10gZG9vcnMgPSBuZXcgaW50W2Rvb3JzQ291bnRdOwogICAgICAgICAgICBpbnQgd2luaW5nRG9vciA9IHJhbmRvbS5uZXh0SW50KGRvb3JzQ291bnQpOwogICAgICAgICAgICBkb29yc1t3aW5pbmdEb29yXSA9IDE7CgogICAgICAgICAgICBpbnQgc2VsZWN0ZWREb29yID0gcmFuZG9tLm5leHRJbnQoZG9vcnNDb3VudCk7CiAgICAgICAgICAgIEludGVnZXIgY2xvc2VkRG9vciA9IFN0cmVhbS5vZigwLCAxLCAyKS5maWx0ZXIoZG9vciAtPiBkb29yICE9IHdpbmluZ0Rvb3IgJiYgZG9vciAhPSBzZWxlY3RlZERvb3IpCiAgICAgICAgICAgICAgICAgICAgLmZpbmRBbnkoKQogICAgICAgICAgICAgICAgICAgIC5nZXQoKTsKCiAgICAgICAgICAgIGlmIChjaGFuZ2VEb29yKSB7CiAgICAgICAgICAgICAgICBpbnQgbmV3RG9vck51bWJlciA9IDMgLSBjbG9zZWREb29yIC0gc2VsZWN0ZWREb29yOwogICAgICAgICAgICAgICAgaWYgKG5ld0Rvb3JOdW1iZXIgPT0gd2luaW5nRG9vcikgewogICAgICAgICAgICAgICAgICAgIHdpbnMrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZERvb3IgPT0gd2luaW5nRG9vcikgewogICAgICAgICAgICAgICAgICAgIHdpbnMrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGYoIkRvb3JzOiAlcywgd2luczogJXMsIHBlcmNlbnQgJXMiLCBjb3VudCwgd2lucywgKGRvdWJsZSkgd2lucyAvIGNvdW50KTsKCX0KfQ==