/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
for (int i = 1; i <= 20; i++) {
System.
out.
println("--- 試行 " + i
+ " 回目 ---"); test();
}
}
static void test
() throws java.
lang.
Exception {
Random r
= java.
util.
concurrent.
ThreadLocalRandom.
current();
long ex1 = 0L, ex2 = 0L, ex3 = 0L;
for (int i = 0; i < 300; i++) {
long e = (long)r.nextInt(4000) + 10L;
if (r.nextDouble() < 0.05) {
e += ((long)r.nextInt(3) + 1L) * 10000L; // メタル
}
ex1 += e;
ex2 += e;
ex3 += e;
if (r.nextDouble() < 0.1) {
ex2 += e;
ex3 += e;
}
if (r.nextDouble() < 0.1) {
ex3 += e;
}
}
System.
out.
println(" " + ex1
);
System.
out.
println("きせきのイヤリング1個"); long a2 = (ex1 * 11L) / 10L;
System.
out.
println(" 期待値(理論値):\n " + a2
); System.
out.
println(" 実際の値:\n " + ex2
); System.
out.
printf(" 誤差: %+4.3f%%\n",
(100.0 * (double)(ex2
- a2
) / (double)a2
));
System.
out.
println("きせきのイヤリング2個"); long a3 = (ex1 * 12L) / 10L;
System.
out.
println(" 期待値(理論値):\n " + a3
); System.
out.
println(" 実際の値:\n " + ex3
); System.
out.
printf(" 誤差: %+4.3f%%\n",
(100.0 * (double)(ex3
- a3
) / (double)a3
));
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCQoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQkKCQlmb3IgKGludCBpID0gMTsgaSA8PSAyMDsgaSsrKSB7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigiLS0tIOippuihjCAiICsgaSArICIg5Zue55uuIC0tLSIpOwoJCQl0ZXN0KCk7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigpOwoJCX0KCX0KCQoJc3RhdGljIHZvaWQgdGVzdCgpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uIHsKCgkJUmFuZG9tIHIgPSBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRMb2NhbFJhbmRvbS5jdXJyZW50KCk7CgkJCgkJbG9uZyBleDEgPSAwTCwgZXgyID0gMEwsIGV4MyA9IDBMOwoJCQoJCWZvciAoaW50IGkgPSAwOyBpIDwgMzAwOyBpKyspIHsKCQkJbG9uZyBlID0gKGxvbmcpci5uZXh0SW50KDQwMDApICsgMTBMOwoJCQlpZiAoci5uZXh0RG91YmxlKCkgPCAwLjA1KSB7CgkJCQllICs9ICgobG9uZylyLm5leHRJbnQoMykgKyAxTCkgKiAxMDAwMEw7IC8vIOODoeOCv+ODqwoJCQl9CgkJCWV4MSArPSBlOwoJCQlleDIgKz0gZTsKCQkJZXgzICs9IGU7CgkJCWlmIChyLm5leHREb3VibGUoKSA8IDAuMSkgewoJCQkJZXgyICs9IGU7CgkJCQlleDMgKz0gZTsKCQkJfQoJCQlpZiAoci5uZXh0RG91YmxlKCkgPCAwLjEpIHsKCQkJCWV4MyArPSBlOwoJCQl9CgkJfQoJCQoJCVN5c3RlbS5vdXQucHJpbnRsbigi6YCa5bi4Iik7CgkJU3lzdGVtLm91dC5wcmludGxuKCIgICIgKyBleDEpOwoKCQlTeXN0ZW0ub3V0LnByaW50bG4oIuOBjeOBm+OBjeOBruOCpOODpOODquODs+OCsDHlgIsiKTsKCQlsb25nIGEyID0gKGV4MSAqIDExTCkgLyAxMEw7CgkJU3lzdGVtLm91dC5wcmludGxuKCIg5pyf5b6F5YCkKOeQhuirluWApCk6XG4gICIgKyBhMik7CgkJU3lzdGVtLm91dC5wcmludGxuKCIg5a6f6Zqb44Gu5YCkOlxuICAiICsgZXgyKTsKCQlTeXN0ZW0ub3V0LnByaW50ZigiIOiqpOW3rjogJSs0LjNmJSVcbiIsICgxMDAuMCAqIChkb3VibGUpKGV4MiAtIGEyKSAvIChkb3VibGUpYTIpKTsKCgkJU3lzdGVtLm91dC5wcmludGxuKCLjgY3jgZvjgY3jga7jgqTjg6Tjg6rjg7PjgrAy5YCLIik7CgkJbG9uZyBhMyA9IChleDEgKiAxMkwpIC8gMTBMOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiIOacn+W+heWApCjnkIboq5blgKQpOlxuICAiICsgYTMpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiIOWun+mam+OBruWApDpcbiAgIiArIGV4Myk7CgkJU3lzdGVtLm91dC5wcmludGYoIiDoqqTlt646ICUrNC4zZiUlXG4iLCAoMTAwLjAgKiAoZG91YmxlKShleDMgLSBhMykgLyAoZG91YmxlKWEzKSk7CgkJCgl9Cn0=