Dato un vettore di n
valori (x1,x2,x3,...,xn)
restituisce il determinante della matrice Vandermonde corrispondente .
Questo determinante può essere scritto come:
Dettagli
Il programma / funzione deve accettare un elenco di numeri in virgola mobile in qualsiasi formato conveniente che consenta una lunghezza variabile e produrre il determinante specificato.
Puoi presumere che l'input e l'output siano compresi nell'intervallo dei valori supportati dalla tua lingua. Se la tua lingua non supporta i numeri in virgola mobile, puoi assumere numeri interi.
Alcuni casi di test
Si noti che ogni volta che ci sono due voci uguali, il determinante sarà 0
dato che ci sono due righe uguali nella matrice Vandermonde corrispondente. Grazie a @randomra per aver segnalato questo testcase mancante.
[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
:: due elementi uguali nell'array, per verificare se il codice controlla l'autodifferenza ( xi-xi
) solo confrontandola con0
.