Produit scalaire minimum
L'inspiration pour ce problème de golf de code vient de la compétition de jam de code de Google . La prémisse derrière le problème est, étant donné l'entrée de deux vecteurs de longueurs variables, de trouver le scalaire minimum possible. Un scalaire peut être trouvé en utilisant la formule suivante:
x1 * y1 + x2 * y2 + ... + xn * yn
Le problème, cependant, est que plusieurs valeurs pour le scalaire peuvent être trouvées en fonction de l'ordre des chiffres dans le cas d'entrée (voir ci-dessous). Votre objectif est de déterminer la solution d'entier scalaire minimale possible en branchant les nombres de cas d'entrée dans l'équation et en les résolvant. Vous ne pouvez utiliser chaque numéro de l'entrée qu'une seule fois et devez utiliser tous les numéros.
Permettez-moi de fournir un exemple avec les vecteurs suivants.
Contribution
3
1 3 -5
-2 4 1
Production
-25
Le premier entier de la ligne représente le nombre de nombres, n, dans chaque vecteur. Dans ce cas, nous avons trois nombres dans chaque vecteur.
Le nombre n peut varier avec chaque cas de test, mais il y aura toujours deux vecteurs.
Dans l'exemple d'entrée, le produit scalaire minimum serait -25.
(-5 * 4) + (1 * 1) + (3 * -2) = 25
Règles
- Vous ne pouvez utiliser chaque entier dans les deux vecteurs qu'une seule fois.
- Vous devez utiliser tous les entiers dans les vecteurs.
- Votre sortie ne doit inclure que le produit final
- Je vais sélectionner la solution avec le moins de code, qui suit toutes les spécifications énumérées ci-dessus, dans n'importe quelle langue!
Astuce: vous n'avez pas besoin de forcer brutalement ce problème, sauf s'il raccourcit votre code. Il existe une méthode spécifique impliquée dans la recherche du scalaire couvrant minimum :).