我编写了一些返回未排序的奇数数组的中位数的代码,但没有返回偶数数组的中位数。
我知道,为了找到偶数数组的中位数,您必须对数组的中间两个数字取平均值,然后将它们取平均值。我无法将其转换为可用的代码。除了这段代码的明显冗长之外,问题似乎出在第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
我将在这里提出解决方案...
def median(ary)
mid = ary.length / 2
sorted = ary.sort
ary.length.odd? ? sorted[mid] : 0.5 * (sorted[mid] + sorted[mid - 1])
end
编辑-我已经.odd?
按照BroiSatse的建议进行了合并。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句