En matemáticas, una forma de descubrir cuál es el tipo de una relación dada (lineal, cuadrática, etc.) es calcular las diferencias. Para hacerlo, tome una lista de valores y para los cuales el espacio entre los valores correspondientes de x es el mismo, y reste cada uno del número que está arriba, creando una lista de números uno más corto que la lista anterior. Si la lista resultante está completamente compuesta de números idénticos, entonces la relación tiene una diferencia de 1 (es lineal). Si no son idénticos, repite el proceso en la nueva lista. Si ahora son idénticos, la relación tiene una diferencia de 2 (es cuadrática). Si no son idénticos, simplemente continúe este proceso hasta que lo sean. Por ejemplo, si tiene la lista de valores de y [1,6,15,28,45,66] para aumentar gradualmente los valores de x:
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
Tu tarea:
Escriba un programa o función que, cuando se le da una matriz de enteros como entrada, devuelve la diferencia de la relación descrita por la matriz, como se explicó anteriormente.
Entrada:
Una matriz de enteros, que pueden tener cualquier longitud> 1.
Salida:
Un entero que representa la diferencia de la relación descrita por la entrada.
Casos de prueba:
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
Tanteo:
Este es el código de golf , el puntaje más bajo en bytes en cada idioma gana para ese idioma. La puntuación más baja en general obtiene la marca de verificación verde.
[1,2,1]
dar 2? [1,2,1] -> [1,-1] -> [-2]
[1,3,9,26,66,150,313,610]
-> 6
si lo desea