/* 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 < 50; 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
));
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCQoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQkKCQlmb3IgKGludCBpID0gMTsgaSA8PSAyMDsgaSsrKSB7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigiLS0tIOippuihjCAiICsgaSArICIg5Zue55uuIC0tLSIpOwoJCQl0ZXN0KCk7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigpOwoJCX0KCX0KCQoJc3RhdGljIHZvaWQgdGVzdCgpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uIHsKCgkJUmFuZG9tIHIgPSBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRMb2NhbFJhbmRvbS5jdXJyZW50KCk7CgkJCgkJbG9uZyBleDEgPSAwTCwgZXgyID0gMEwsIGV4MyA9IDBMOwoJCQoJCWZvciAoaW50IGkgPSAwOyBpIDwgNTA7IGkrKykgewoJCQlsb25nIGUgPSAobG9uZylyLm5leHRJbnQoNDAwMCkgKyAxMEw7CgkJCWlmIChyLm5leHREb3VibGUoKSA8IDAuMDUpIHsKCQkJCWUgKz0gKChsb25nKXIubmV4dEludCgzKSArIDFMKSAqIDEwMDAwTDsgLy8g44Oh44K/44OrCgkJCX0KCQkJZXgxICs9IGU7CgkJCWV4MiArPSBlOwoJCQlleDMgKz0gZTsKCQkJaWYgKHIubmV4dERvdWJsZSgpIDwgMC4xKSB7CgkJCQlleDIgKz0gZTsKCQkJCWV4MyArPSBlOwoJCQl9CgkJCWlmIChyLm5leHREb3VibGUoKSA8IDAuMSkgewoJCQkJZXgzICs9IGU7CgkJCX0KCQl9CgkJCgkJU3lzdGVtLm91dC5wcmludGxuKCLpgJrluLgiKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIiAgIiArIGV4MSk7CgoJCVN5c3RlbS5vdXQucHJpbnRsbigi44GN44Gb44GN44Gu44Kk44Ok44Oq44Oz44KwMeWAiyIpOwoJCWxvbmcgYTIgPSAoZXgxICogMTFMKSAvIDEwTDsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIiDmnJ/lvoXlgKQo55CG6KuW5YCkKTpcbiAgIiArIGEyKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIiDlrp/pmpvjga7lgKQ6XG4gICIgKyBleDIpOwoJCVN5c3RlbS5vdXQucHJpbnRmKCIg6Kqk5beuOiAlKzQuM2YlJVxuIiwgKDEwMC4wICogKGRvdWJsZSkoZXgyIC0gYTIpIC8gKGRvdWJsZSlhMikpOwoKCQlTeXN0ZW0ub3V0LnByaW50bG4oIuOBjeOBm+OBjeOBruOCpOODpOODquODs+OCsDLlgIsiKTsKCQlsb25nIGEzID0gKGV4MSAqIDEyTCkgLyAxMEw7CgkJU3lzdGVtLm91dC5wcmludGxuKCIg5pyf5b6F5YCkKOeQhuirluWApCk6XG4gICIgKyBhMyk7CgkJU3lzdGVtLm91dC5wcmludGxuKCIg5a6f6Zqb44Gu5YCkOlxuICAiICsgZXgzKTsKCQlTeXN0ZW0ub3V0LnByaW50ZigiIOiqpOW3rjogJSs0LjNmJSVcbiIsICgxMDAuMCAqIChkb3VibGUpKGV4MyAtIGEzKSAvIChkb3VibGUpYTMpKTsKCQkKCX0KfQ==