2015-02-23 55 views
0

無法找到隨機值的中位數。假設你輸入數字如31 62 49 76 56 54 4 7 13 59。這兩個中間值將是49 & 54。既然它是平均的,你會把這兩個值除以2得出答案51.5。我沒有得到正確的答案,我嘗試了幾種不同的方法。Java找到中位數問題

我想完全理解我的程序將長途跋涉到這裏,所以我創建了一個鏈接到這裏的文件:Click here to view。如果您知道我在哪裏出錯,請告訴我。

+0

Add(添加)本身的代碼! – Batty 2015-02-23 05:33:08

+0

讓我們看看你的代碼。粘貼在這裏 – 2015-02-23 05:33:42

+0

它真的很長...點擊鏈接查看它。 – 2015-02-23 05:34:40

回答

0

Acording到Wikipedia

數的有限列表的中位數可以通過從最低值到最高值排列所有的意見和選擇中間的一個發現。如果有偶數的觀察值,那麼沒有單箇中間值;那麼中位數通常被定義爲兩個中間值的平均值。

所以,如果你使用的int的數組:

public static double median(int[] original) { 
    int[] array = Arrays.copyOf(original, original.length); 
    Arrays.sort(array); 
    int central = array.length/2; 
    if (array.length % 2 == 0) { 
     return (array[central - 1] + array[central])/2.0; 
    } 
    return array[central]; 
} 
+0

好的,我會嘗試重新編程。 – 2015-02-23 05:41:40