/* 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
int[] arr = new int[100000];
long estHalfLong
= ((long)Integer.
MAX_VALUE + 1L
); long estMeanLong = 0;
for(int i = 0; i < arr.length; i++)
{
arr
[i
] = rand.
nextInt(Integer.
MAX_VALUE) + 1; estMeanLong += (long)arr[i];
}
long estHalf = (estHalfLong/2L + estHalfLong%2L);
long estMean = (estMeanLong/(long)arr.length);
long estAvgHalfMean = (estHalf + estMean)/2 + (estHalf + estMean)%2;
long trueMedian = ((long)arr[499] + (long)arr[500])/2L + ((long)arr[499] + (long)arr[500])%2L;
System.
out.
println("TRUE MEDIAN: " + trueMedian
); System.
out.
println("EST HALF: " + estHalf
); System.
out.
println("EST MEAN: " + estMean
); System.
out.
println("TRUE - HALF: " + Math.
abs(trueMedian
- estHalf
)); System.
out.
println("TRUE - MEAN: " + Math.
abs(trueMedian
- estMean
)); System.
out.
println("TRUE - AVG HALF MEAN: " + Math.
abs(trueMedian
- estAvgHalfMean
)); double ratio = ((double)trueMedian - estHalf)/((double)trueMedian - estMean);
double ratio1 = ((double)trueMedian - estAvgHalfMean)/((double)trueMedian - estHalf);
double ratio2 = ((double)trueMedian - estAvgHalfMean)/((double)trueMedian - estMean);
System.
out.
println(String.
format("DISTANCE HALF/MEAN: %2.6f",ratio
)); System.
out.
println(String.
format("DISTANCE AVG HALF MEAN/HALF: %2.6f",ratio1
)); System.
out.
println(String.
format("DISTANCE AVG HALF MEAN/MEAN: %2.6f",ratio2
)); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlSYW5kb20gcmFuZCA9IG5ldyBSYW5kb20oKTsKCQlpbnRbXSBhcnIgPSBuZXcgaW50WzEwMDAwMF07CgkJCgkJbG9uZyBlc3RIYWxmTG9uZyA9ICgobG9uZylJbnRlZ2VyLk1BWF9WQUxVRSArIDFMKTsKCQlsb25nIGVzdE1lYW5Mb25nID0gMDsKCQkKCQlmb3IoaW50IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKQoJCXsKCQkJYXJyW2ldID0gcmFuZC5uZXh0SW50KEludGVnZXIuTUFYX1ZBTFVFKSArIDE7CgkJCWVzdE1lYW5Mb25nICs9IChsb25nKWFycltpXTsKCQl9CgkJbG9uZyBlc3RIYWxmID0gKGVzdEhhbGZMb25nLzJMICsgZXN0SGFsZkxvbmclMkwpOwoJCWxvbmcgZXN0TWVhbiA9IChlc3RNZWFuTG9uZy8obG9uZylhcnIubGVuZ3RoKTsKCQlsb25nIGVzdEF2Z0hhbGZNZWFuID0gKGVzdEhhbGYgKyBlc3RNZWFuKS8yICsgKGVzdEhhbGYgKyBlc3RNZWFuKSUyOwoJCQoJCUFycmF5cy5zb3J0KGFycik7CgkJCgkJbG9uZyB0cnVlTWVkaWFuID0gKChsb25nKWFycls0OTldICsgKGxvbmcpYXJyWzUwMF0pLzJMICsgKChsb25nKWFycls0OTldICsgKGxvbmcpYXJyWzUwMF0pJTJMOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiVFJVRSBNRURJQU46ICIgKyB0cnVlTWVkaWFuKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIkVTVCBIQUxGOiAiICsgZXN0SGFsZik7CgkJU3lzdGVtLm91dC5wcmludGxuKCJFU1QgTUVBTjogIiArIGVzdE1lYW4pOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiVFJVRSAtIEhBTEY6ICIgKyBNYXRoLmFicyh0cnVlTWVkaWFuIC0gZXN0SGFsZikpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiVFJVRSAtIE1FQU46ICIgKyBNYXRoLmFicyh0cnVlTWVkaWFuIC0gZXN0TWVhbikpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiVFJVRSAtIEFWRyBIQUxGIE1FQU46ICIgKyBNYXRoLmFicyh0cnVlTWVkaWFuIC0gZXN0QXZnSGFsZk1lYW4pKTsKCQlkb3VibGUgcmF0aW8gPSAoKGRvdWJsZSl0cnVlTWVkaWFuIC0gZXN0SGFsZikvKChkb3VibGUpdHJ1ZU1lZGlhbiAtIGVzdE1lYW4pOwoJCWRvdWJsZSByYXRpbzEgPSAoKGRvdWJsZSl0cnVlTWVkaWFuIC0gZXN0QXZnSGFsZk1lYW4pLygoZG91YmxlKXRydWVNZWRpYW4gLSBlc3RIYWxmKTsKCQlkb3VibGUgcmF0aW8yID0gKChkb3VibGUpdHJ1ZU1lZGlhbiAtIGVzdEF2Z0hhbGZNZWFuKS8oKGRvdWJsZSl0cnVlTWVkaWFuIC0gZXN0TWVhbik7CgkJU3lzdGVtLm91dC5wcmludGxuKFN0cmluZy5mb3JtYXQoIkRJU1RBTkNFIEhBTEYvTUVBTjogJTIuNmYiLHJhdGlvKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKFN0cmluZy5mb3JtYXQoIkRJU1RBTkNFIEFWRyBIQUxGIE1FQU4vSEFMRjogJTIuNmYiLHJhdGlvMSkpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihTdHJpbmcuZm9ybWF0KCJESVNUQU5DRSBBVkcgSEFMRiBNRUFOL01FQU46ICUyLjZmIixyYXRpbzIpKTsKCX0KfQ==