Rubyで導関数([i]-[i-1])を計算する
-
06-07-2019 - |
質問
forループまたはeach_with_indexを使用して、Ruby構文を使用してそれを行うより良い方法があるかどうか疑問に思っています。
ソース配列の派生物である新しい配列を作成する必要があります。例:
for(int i = 1; i < oldArray.length; i++)
{
newArray[i] = oldArray[i] - oldArray[i-1]
}
解決
old_array.each_cons(2).map{|x, y| y - x}
Enumerable#each_cons
は、ブロックサイズなしでチャンクサイズ2で呼び出され、 old_array
の連続する要素の各ペアを反復処理するEnumeratorを返します。次に、 map
を使用して、各ペアで減算を実行します。
他のヒント
last=0
new = old.map{|v|x=v-last;last=v;x}[1..-1]
所属していません StackOverflow