如何使用Ruby计算数字数组的中值?

我是一个初学者,正在努力处理奇偶长度数组的情况.

推荐答案

以下是一个既适用于偶数长度数组又适用于奇数长度数组的解决方案,它不会改变数组:

def median(array)
  return nil if array.empty?
  sorted = array.sort
  len = sorted.length
  (sorted[(len - 1) / 2] + sorted[len / 2]) / 2.0
end

Ruby相关问答推荐

扫描不带空格的字符串中的单词

如何使用Ruby range?

我可以在Ruby中以散列的形式访问方法的关键字参数吗?

关键字if是什么对象类型/类?

使用正则表达式判断用户输入的开头是否正好有两个大括号

仅在模块中列出方法?

Ruby: initialize() vs 类体(class body)?

从单独的文件中包含一个 Ruby 类

如何使用 Ruby OptionParser 指定所需的switch (不是参数)?

迭代一个数组,一次 n 项

在 ruby​​ 的超类中调用另一个方法

如何在不等式中使用Ruby case ... when?

Ruby on rails - 静态方法

在命名包含多个单词的Ruby 时,是否应该使用破折号或下划线?

很好地格式化输出到控制台,指定选项卡的数量

带有添加和删除参考的 Rails 迁移

在 Ruby 中, coerce() 是如何工作的?

错误数量的参数(1 代表 0)在 Ruby 中是什么意思?

为什么这个 Ruby 对象同时具有 to_s 和 inspect 似乎做同样事情的方法?

Ruby 是否有像栈、队列、链表、映射或集合这样的容器?