Suma minimal de productos de pares de elementos consecutivos
Al permutar los elementos de la lista [1,2,3,4] se obtienen los siguientes valores de la suma de pares de elementos consecutivos:
- 10, por ejemplo con [1,4,2,3] ya que 1x4+2x3 = 10
- 11, por ejemplo con [1,3,2,4] ya que 1x3+2x4 = 11
- 14, por ejemplo con [1,2,3,4] ya que 1x2+3x4 = 14
Por tanto, la mínima suma de los productos de elementos consecutivos en las permutaciones de [1,2,3,4] es 10 y una permutación con dicha suma es [1,4,2,3].
Definir las funciones
minimaSumaProductos :: (Num a, Ord a) => [a] -> a permutacionMinimal :: (Num a, Ord a) => [a] -> [a]
tales que
- (minimaSumaProductos xs) es la mínima suma de los productos de elementos consecutivos en las permutaciones de lista xs, suponiendo que xs tiene un número par de elementos. Por ejemplo,
minimaSumaProductos [1..4] == 10 minimaSumaProductos [3,2,5,7,1,6] == 34 minimaSumaProductos [9,2,8,4,5,7,6,0] == 74 minimaSumaProductos [1,2,1,4,0,5,6,0] == 6
- (permutacionMinimal xs) es una permutación de xs cuya suma de productos de elementos consecutivos de xs es la mínima suma de los productos de elementos consecutivos en las permutaciones de lista xs, suponiendo que xs tiene un número par de elementos. Por ejemplo,
permutacionMinimal [1..4] == [1,4,3,2] permutacionMinimal [3,2,5,7,1,6] == [1,7,2,6,3,5] permutacionMinimal [9,2,8,4,5,7,6,0] == [0,9,2,8,4,7,5,6] permutacionMinimal [1,2,1,4,0,5,6,0] == [0,6,0,5,1,4,1,2]
