如何查找数组中有最小差异的两个元素?

问题描述:

如何在数组中找到两个具有最小差异的元素?如何查找数组中有最小差异的两个元素?

换句话说,如何找到两个具有最小标准差的元素。

例如,如果我有这样的数组:

ARR = [158,2,15,38,17,91]

其结果将是15和17

+4

[* Standard deviation *](https://en.wikipedia.org/wiki/Standard_deviation)表示与平均数的差异,而不是数据集中两个值之间的差异。 – trincot

+0

请阅读“[问]”,包括链接的页面和“[mcve]”。我们希望看到您的努力,无论是您搜索的地方,为什么他们没有帮助,或您为解决问题编写的代码。没有代码,它看起来像你要求我们为你写代码,这不是它的目的。请阅读http://meta.*.com/q/261592/128421,因为它有助于解释事情的努力方面。 –

我假设问题是“数组中的两个元素是其最小差值的绝对值?”。

arr.combination(2).min_by { |a,b| (a-b).abs } 
    #=> [15, 17] 

Array#combinationEnumerable#min_by