1
2
既然中位数需要排序,你可以委托给
示例运行:
您没有指定偶数长度数组应该发生什么。对于一个数学中位数(如果我记得我的数学正确),你会平均这两个中心最重要的元素,但接下来的问题是平均2个不同的数组看起来像什么。这采用了简单的(对我们来说)方法,返回中心元素,调用方必须决定如何处理它们。(如果它不是嵌套在内部的另一个数组,如果它是一个列表,例如,你想用姓氏的中间值,那该怎么办?) |
2
0
我假设数组的中值定义如下。对于数组
在最后一个例子中
见 Enumerable#min_by 是的。可选参数是在ruby v2.1中引入的。 |
3
-1
flatten()是你的朋友。它将嵌套数组(或任何可枚举数组)折叠为单个数组。然后,计算中位数变得微不足道:
这样可以:
为了提高性能,您可能需要计算self.flatten一次,然后从该数组中执行两个算术操作。但是,除非你使用的是海量数据,否则可能没关系,希望Ruby能为你优化。但老实说,我不会担心表演。 编辑后,KydoRess指出我混淆了中值和中值!谢谢,孩子!] |
joe souaid · 用姓名填写二维列表 2 年前 |
cng · 如何在嵌套数组中查找值,然后将值从布尔值更改为字符串? 2 年前 |
Zoey · 向Java数组中添加多个内容 2 年前 |
Zoey · 使用5x5数组创建Java递增字母表网格 2 年前 |
amirMD · 如何在所有数组的开头和结尾添加零 2 年前 |
Joseph · 如何移动二维阵列中的空白空间? 2 年前 |