Étant donné un vecteur de n
valeurs, (x1,x2,x3,...,xn)
renvoyer le déterminant de la matrice de Vandermonde correspondante .
Ce déterminant peut s'écrire:
Détails
Votre programme / fonction doit accepter une liste de nombres à virgule flottante dans n'importe quel format pratique qui permet une longueur variable et produire le déterminant spécifié.
Vous pouvez supposer que l'entrée ainsi que la sortie sont dans la plage des valeurs prises en charge par votre langue. Si votre langue ne prend pas en charge les nombres à virgule flottante, vous pouvez supposer des nombres entiers.
Quelques cas de test
Notez que chaque fois qu'il y a deux entrées égales, le déterminant sera 0
comme il y a deux lignes égales dans la matrice Vandermonde correspondante. Merci à @randomra d'avoir signalé ce testcase manquant.
[1,2,2,3] 0
[-13513] 1
[1,2] 1
[2,1] -1
[1,2,3] 2
[3,2,1] -2
[1,2,3,4] 12
[1,2,3,4,5] 288
[1,2,4] 6
[1,2,4,8] 1008
[1,2,4,8,16] 20321280
[0, .1, .2,...,1] 6.6586e-028
[1, .5, .25, .125] 0.00384521
[.25, .5, 1, 2, 4] 19.3798828
[1,2,2,3] => 0
:: deux éléments égaux dans le tableau, pour tester si le code vérifie l'auto-différence ( xi-xi
) simplement en comparant à 0
.