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

Coo*_*une 4 ruby algorithm derivative

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

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

for(int i = 1; i < oldArray.length; i++)
{
    newArray[i] = oldArray[i] - oldArray[i-1]
}
Run Code Online (Sandbox Code Playgroud)

Avd*_*vdi 8

old_array.each_cons(2).map{|x, y| y - x}
Run Code Online (Sandbox Code Playgroud)

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

  • 编写的代码需要1.8.7我相信.但是,您可以将其写为"old_array.enum_cons(2).map {| x,y | y - x}",它也适用于以前的版本 (2认同)