Berechnen Sie das Derivat ([i] - [i - 1]) in Ruby
-
06-07-2019 - |
Frage
Trivial mit einem für Schleifen oder Ever_with_index, frage mich nur, ob es eine bessere Möglichkeit gab, dies mit Ruby -Syntax zu tun.
Ich muss ein neues Array erstellen, das die Ableitung des Quellarrays ist, z. B.:
for(int i = 1; i < oldArray.length; i++)
{
newArray[i] = oldArray[i] - oldArray[i-1]
}
Lösung
old_array.each_cons(2).map{|x, y| y - x}
Enumerable#each_cons
mit einer Blockgröße von 2 angerufen, aber ohne Block gibt es einen Enumerator zurück, der über jedes Paar aufeinanderfolgender Elemente in iteriert old_array
. Dann benutzen wir nur map
um eine Subtraktion auf jedem Paar durchzuführen.
Andere Tipps
last=0
new = old.map{|v|x=v-last;last=v;x}[1..-1]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow