我编写了一些返回未排序的奇数数组的中位数的代码,但没有返回偶数数组的中位数。
我知道,为了找到偶数数组的中位数,必须取数组的中间两个数字取它们的平均值,这就是中位数。我无法将其转换为可用的代码。除了这段代码的明显冗长之外,问题似乎出在第7-8行,我不明白为什么。
我更喜欢提示而不是答案,但是,如果您要发布一些固定的代码,我也可以接受。
def media(array)
sorted = array.sort
list = sorted.length
if list %2 != 0
(list + 1) / 2.0
else
even = ((list.to_f + 2) / 2) + ((list.to_f / 2)
return (even/2)
end
end
Run Code Online (Sandbox Code Playgroud)