我無法弄清楚爲什麼我無法得到正確的偶數長度部分。在紅寶石中查找偶數長度數組的中位數
def median(array)
array.sort!
if array.length % 2 == 0 #if amount of array members is even
(array[(array.length/2) + 1] + array[array.length/2])/2.to_f #return average of the 2 middle array members
else #if amount of array members is odd
array[array.length/2.ceil] #return middle number
end
end
我的嘗試是,例如,一個數組,其長度爲6,且其第三和第四索引值7和9
array[6/3+1] + array [6/3]
(array[4] + array[3]) /2
9 + 7/2
我接收到該錯誤
Error!
median returns the correct median of an even-length array
expected: 5.5 got: 6.0 (compared using ==)
我已經看到了一個較短的解決方案,但是如果我能理解我想要遵循的邏輯路徑,我是最好奇的,謝謝你一起玩!
解決方案我已經看到:
def median(array)
sorted = array.sort
len = sorted.length
return (sorted[(len - 1)/2] + sorted[len/2])/2.0
end