57142


タイトルが分かりづらくてすみません。

[code]

    hash = {a=>2.4, b=>3.5, c=>4.3, d=>5.0, e=>2.2}
    
[/code]

上記のようなハッシュの場合だと、aとbの差が1.1、bとcの差が0.8、cとdが0.7、dとeが2.8になるのでdもしくはeを出力したいのですが求め方が思いつきません。

これを求める方法を是非教えていただきたいです。  
よろしくお願いします。

隣り合うとはaであればbとの差、bであればaとcとの差、cであればbとdとの差ということです。  
説明が分かりづらく申し訳ありません。


CC BY-SA 4.0
2019-08-03T05:07:43.687
57140
2019-08-03T15:13:59.990
2019-08-03T15:13:59.990
29428
29428
question
ruby
ハッシュの隣り合ったvalueの差が多きものを求めたい

[code]

    hash = {a: 2.4, b: 3.5, c: 4.3, d: 5.0, e: 2.2}
    
    result = hash.each_cons(2).map do |kv1, kv2|
      value_diff = (kv1[1] - kv2[1]).abs
      [[kv1[0], kv2[0]], value_diff]
    end.max_by { |_, v| v }
    
    p result[0]
    
[/code]

上記を実行すると、 `[:d, :e]` を得られるはずです。


CC BY-SA 4.0
2019-08-03T06:34:51.890
57142
2019-08-03T06:34:51.890
754
57140
answer