Minimalna iloczyn skalarny
Inspiracją do rozwiązania tego problemu z golfem jest konkurs Google jam jam . Założeniem problemu jest, biorąc pod uwagę wejście dwóch wektorów o różnej długości, znalezienie minimalnego możliwego skalara. Skalar można znaleźć za pomocą następującej formuły:
x1 * y1 + x2 * y2 + ... + xn * yn
Problem polega jednak na tym, że można znaleźć wiele wartości skalara w zależności od kolejności cyfr w przypadku wprowadzania (patrz poniżej). Twoim celem jest ustalenie minimalnego możliwego skalarnego rozwiązania liczb całkowitych poprzez podłączenie liczb przypadków wejściowych do równania i ich rozwiązanie. Możesz użyć każdej liczby na wejściu tylko raz i musisz użyć wszystkich liczb.
Pozwólcie, że podam przykład z następującymi wektorami.
Wejście
3
1 3 -5
-2 4 1
Wynik
-25
Pierwsza liczba całkowita w linii reprezentuje liczbę liczb, n, w każdym wektorze. W tym przypadku mamy trzy liczby w każdym wektorze.
Liczba n może się różnić w każdym przypadku testowym, ale zawsze będą dwa wektory.
W przykładowym danych wejściowych minimalny iloczyn skalarny wynosiłby -25.
(-5 * 4) + (1 * 1) + (3 * -2) = 25
Zasady
- Możesz użyć tylko jednej liczby całkowitej w obu wektorach.
- Musisz użyć wszystkich liczb całkowitych w wektorach.
- Twój wynik musi zawierać tylko produkt końcowy
- Wybiorę rozwiązanie z najmniejszą ilością kodu, zgodną ze wszystkimi powyższymi specyfikacjami, w dowolnym języku!
Wskazówka: nie musisz brutalnie wymuszać tego problemu, chyba że spowoduje to skrócenie kodu. W znalezieniu minimalnego skalara obejmującego jest określona metoda :).