配列内で差が最も小さい 2 つの要素を見つけるにはどうすればよいですか?
つまり、標準偏差が最も小さい 2 つの要素を見つける方法です。
たとえば、次のような配列があるとします。
arr = [158,2,15,38,17,91]
結果は 15 と 17 になります。
配列内で差が最も小さい 2 つの要素を見つけるにはどうすればよいですか?
つまり、標準偏差が最も小さい 2 つの要素を見つける方法です。
たとえば、次のような配列があるとします。
arr = [158,2,15,38,17,91]
結果は 15 と 17 になります。
問題は、「配列のどの 2 つの要素の差の絶対値が最小か」ということだと思います。
arr.combination(2).min_by { |a,b| (a-b).abs }
#=> [15, 17]
Array#combinationとEnumerable#min_byを参照してください。