Jest to bardziej problem algorytmiczny/matematyczny, ale mam nadzieję, że zaimplementuję rozwiązanie w C++.Jak dodać liczby w macierzy, aby uzyskać minimalny wynik?
Załóżmy, że ma matrycę, jak następuje, gdy kropki oznaczają liczby całkowite:
W X Y Z
A . . . .
B . . . .
C . . . .
D . . . .
Jak poddaję minimalny efekt jeśli było wybrać jeden numer z każdej kolumnie tak, że przynajmniej jedna liczba od każdy rząd?
Na przykład, mogę wybrać AW BX CY DZ
lub AZ BX CY DW
ale NIE AW BW CZ DZ
Podejście brute force wydaje się brać n! obliczenia. Czy jest szybsza droga? Ostatecznie chciałbym dodać liczby w macierzach o rozmiarze ~ 60.
Ponadto, wszystkie liczby w zakresie od 0 do 256.
n silnia rzeczywiście. mój błąd. – Tarik
Załóżmy, że zaczynasz od AW, BX lub BW, AX: W obu przypadkach wypadałyby kolumny A, B i W, X. Myślenie w tym kierunku rekursywnie i buforowanie wyników powinno załatwić sprawę. Zobacz http://en.wikipedia.org/wiki/Dynamic_programming – Tarik
http://en.wikipedia.org/wiki/Hungarian_algorithm Twoje pytanie wygląda podobnie do tego problemu. – user2548103