In der Mathematik besteht eine Möglichkeit, die Art einer gegebenen Beziehung (linear, quadratisch usw.) herauszufinden, darin, die Differenzen zu berechnen. Dazu nehmen Sie eine Liste von y-Werten, für die der Abstand zwischen den entsprechenden x-Werten gleich ist, und subtrahieren jeden einzelnen von der darüber liegenden Zahl. Dabei wird eine Liste von Zahlen erstellt, die eine Nummer kürzer als die vorherige Liste ist. Wenn die resultierende Liste vollständig aus identischen Zahlen besteht, hat die Beziehung eine Differenz von 1 (sie ist linear). Wenn sie nicht identisch sind, wiederholen Sie den Vorgang in der neuen Liste. Wenn sie jetzt identisch sind, hat die Relation eine Differenz von 2 (sie ist quadratisch). Wenn sie nicht identisch sind, setzen Sie diesen Vorgang einfach fort, bis sie identisch sind. Wenn Sie beispielsweise die Liste der y-Werte [1,6,15,28,45,66] haben, um die x-Werte schrittweise zu erhöhen, gehen Sie wie folgt vor:
First Differences:
1
6 1-6 =-5
15 6-15 =-9
28 15-28=-13
45 28-45=-17
66 45-66=-21
Second differences:
-5
-9 -5+9 =4
-13 -9+13 =4
-17 -13+17=4
-21 -17+21=4
As these results are identical, this relation has a difference of 2
Deine Aufgabe:
Schreiben Sie ein Programm oder eine Funktion, die bei Angabe eines Arrays von Ganzzahlen als Eingabe die Differenz der durch das Array beschriebenen Beziehung zurückgibt, wie oben erläutert.
Eingang:
Ein Array von Ganzzahlen, das eine beliebige Länge> 1 haben kann.
Ausgabe:
Eine Ganzzahl, die die Differenz der durch die Eingabe beschriebenen Beziehung darstellt.
Testfälle:
Input => Output
[1,2,3,4,5,6,7,8,9,10] => 1
[1,4,9,16,25,36] => 2
[1,2,1] => 2 (when there is only one value left, all values are automatically identical, so the largest difference an array can have is equal to the length of the array-1)
"Hello World" => undefined behavior (invalid input)
[1,1,1,1,1,1,1,1,1] => 0 (all elements are already identical)
[1, 3, 9, 26, 66, 150, 313, 610] => 6
Wertung:
Dies ist Code-Golf . Die niedrigste Punktzahl in Bytes in jeder Sprache gewinnt für diese Sprache. Die niedrigste Gesamtpunktzahl erhält das grüne Häkchen.
[1,2,1]
2 geben? [1,2,1] -> [1,-1] -> [-2]
[1,3,9,26,66,150,313,610]
-> 6
wenn Sie