Dado um vetor de n
valores, (x1,x2,x3,...,xn)
retorne o determinante da matriz de Vandermonde correspondente .
Este determinante pode ser escrito como:
Detalhes
Seu programa / função precisa aceitar uma lista de números de ponto flutuante em qualquer formato conveniente que permita um comprimento variável e gerar o determinante especificado.
Você pode assumir que a entrada e a saída estão dentro do intervalo dos valores que seu idioma suporta. Se o seu idioma não suportar números de ponto flutuante, você poderá assumir números inteiros.
Alguns casos de teste
Observe que sempre que houver duas entradas iguais, o determinante será o de 0
duas linhas iguais na matriz de Vandermonde correspondente. Agradecemos a @randomra por apontar esse caso de teste ausente.
[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
:: dois elementos iguais na matriz, para testar se o código verifica a auto-diferença ( xi-xi
) apenas comparando com 0
.