计算Ruby中的导数([i] - [i - 1])

时间:2009-07-31 20:01:32

标签: ruby algorithm derivative

使用for循环或each_with_index微不足道,只是想知道是否有更好的方法使用Ruby语法。

我需要创建一个新数组,它是源数组的衍生物,例如:

for(int i = 1; i < oldArray.length; i++)
{
    newArray[i] = oldArray[i] - oldArray[i-1]
}

2 个答案:

答案 0 :(得分:8)

old_array.each_cons(2).map{|x, y| y - x}

Enumerable#each_cons调用,块大小为2,但没有块返回一个枚举器,它将迭代old_array中的每对连续元素。然后我们只使用map对每对执行减法。

答案 1 :(得分:1)

last=0
new = old.map{|v|x=v-last;last=v;x}[1..-1]