fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. // your code goes here
  13. Random rand = new Random();
  14. int[] arr = new int[100000];
  15.  
  16. long estHalfLong = ((long)Integer.MAX_VALUE + 1L);
  17. long estMeanLong = 0;
  18.  
  19. for(int i = 0; i < arr.length; i++)
  20. {
  21. arr[i] = rand.nextInt(Integer.MAX_VALUE) + 1;
  22. estMeanLong += (long)arr[i];
  23. }
  24. long estHalf = (estHalfLong/2L + estHalfLong%2L);
  25. long estMean = (estMeanLong/(long)arr.length);
  26. long estAvgHalfMean = (estHalf + estMean)/2 + (estHalf + estMean)%2;
  27.  
  28. Arrays.sort(arr);
  29.  
  30. long trueMedian = ((long)arr[499] + (long)arr[500])/2L + ((long)arr[499] + (long)arr[500])%2L;
  31. System.out.println("TRUE MEDIAN: " + trueMedian);
  32. System.out.println("EST HALF: " + estHalf);
  33. System.out.println("EST MEAN: " + estMean);
  34. System.out.println("TRUE - HALF: " + Math.abs(trueMedian - estHalf));
  35. System.out.println("TRUE - MEAN: " + Math.abs(trueMedian - estMean));
  36. System.out.println("TRUE - AVG HALF MEAN: " + Math.abs(trueMedian - estAvgHalfMean));
  37. double ratio = ((double)trueMedian - estHalf)/((double)trueMedian - estMean);
  38. double ratio1 = ((double)trueMedian - estAvgHalfMean)/((double)trueMedian - estHalf);
  39. double ratio2 = ((double)trueMedian - estAvgHalfMean)/((double)trueMedian - estMean);
  40. System.out.println(String.format("DISTANCE HALF/MEAN: %2.6f",ratio));
  41. System.out.println(String.format("DISTANCE AVG HALF MEAN/HALF: %2.6f",ratio1));
  42. System.out.println(String.format("DISTANCE AVG HALF MEAN/MEAN: %2.6f",ratio2));
  43. }
  44. }
Success #stdin #stdout 0.11s 380672KB
stdin
Standard input is empty
stdout
TRUE MEDIAN: 10900191
EST HALF: 1073741824
EST MEAN: 1073478770
TRUE - HALF: 1062841633
TRUE - MEAN: 1062578579
TRUE - AVG HALF MEAN: 1062710106
DISTANCE HALF/MEAN: 1.000248
DISTANCE AVG HALF MEAN/HALF: 0.999876
DISTANCE AVG HALF MEAN/MEAN: 1.000124