0

これを変換するルビーの方法が見つからないようです

[0, 1, 2, 3]

の中へ

[0, 0.5, 1, 1.5, 2, 2.5, 3]

たとえば、何らかのルールを適用して、既存の要素に基づいて新しい要素を挿入します。

編集: 必ずしも 0.5 の増分ではなく、一般的なケースについて質問しています。たとえば、要素が連続していない場合:

[1, 3, 12] => [1, 2, 3, 7.5, 12]

したがって、受け入れられた答えはここで完璧です、ありがとう。

4

1 に答える 1

4
arr = [0, 1, 2, 3]

def rule(x, y)
  (x + y) / 2.0
end

arr.each_cons(2).flat_map{|x, y| [x, rule(x, y), y]} # => [0, 0.5, 1, 1, 1.5, 2, 2, 2.5, 3]
于 2013-10-14T12:43:48.323 に答える