Ir al contenido principal

Actualización de «Mínimo producto escalar»

He actualizado las soluciones del ejercicio «Mínimo producto escalar» cuyo enunciado es


El producto escalar de los vectores \(a_1,a_2,\dots,a_n\) y \(b_1,b_2,\dots,b_n\) es \[a_1 \times b_1 + a_2 \times b_2 + \dots + a_n \times b_n\]

Definir la función

menorProductoEscalar :: (Ord a, Num a) => [a] -> [a] -> a

tal que (menorProductoEscalar xs ys) es el mínimo de los productos escalares de las permutaciones de xs y de las permutaciones de ys. Por ejemplo,

menorProductoEscalar [3,2,5]  [1,4,6]   ==  29
menorProductoEscalar [3,2,5]  [1,4,-6]  ==  -19
menorProductoEscalar [1..10^2] [1..10^2] == 171700
menorProductoEscalar [1..10^3] [1..10^3] == 167167000
menorProductoEscalar [1..10^4] [1..10^4] == 166716670000
menorProductoEscalar [1..10^5] [1..10^5] == 166671666700000
menorProductoEscalar [1..10^6] [1..10^6] == 166667166667000000

Nota: Puedes consultar las soluciones aquí.