En mathématiques, une façon de déterminer quel est le type d'une relation donnée (linéaire, quadratique, etc.) pour calculer les différences. Pour ce faire, vous prenez une liste de valeurs y pour lesquelles l'écart entre les valeurs x correspondantes est le même, et soustrayez chacune du nombre au-dessus, créant une liste de nombres plus courte que la liste précédente. Si la liste résultante est entièrement composée de nombres identiques, alors la relation a une différence de 1 (elle est linéaire). S'ils ne sont pas identiques, vous répétez le processus sur la nouvelle liste. S'ils sont maintenant identiques, la relation a une différence de 2 (elle est quadratique). S'ils ne sont pas identiques, vous continuez simplement ce processus jusqu'à ce qu'ils le soient. Par exemple, si vous avez la liste des valeurs y [1,6,15,28,45,66] pour l'augmentation incrémentielle des valeurs 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
Ta tâche:
Écrivez un programme ou une fonction qui, lorsqu'elle reçoit un tableau d'entiers en entrée, renvoie la différence de la relation décrite par le tableau, comme expliqué ci-dessus.
Contribution:
Un tableau d'entiers, qui peut être de n'importe quelle longueur> 1.
Sortie:
Un entier représentant la différence de la relation décrite par l'entrée.
Cas de test:
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
Notation:
Il s'agit du code-golf , le score le plus bas en octets dans chaque langue gagne pour cette langue. Le score le plus bas obtient la coche verte.
[1,2,1]
donner 2? [1,2,1] -> [1,-1] -> [-2]
[1,3,9,26,66,150,313,610]
-> 6
si vous le souhaitez