To wyzwanie jest częściowo wyzwaniem algorytmów, częściowo wyzwaniem optymalizacji, a częściowo po prostu najszybszym wyzwaniem kodu.
Macierz AT jest w pełni określona przez pierwszy wiersz r
i pierwszą kolumnę c
. Każdy pozostały element macierzy jest tylko kopią elementu, który jest ukośnie w górę i w lewo. Że jest M[i,j] = M[i-1,j-1]
. Dopuszczamy macierze T, które nie są kwadratowe. Zawsze jednak zakładamy, że liczba wierszy jest nie większa niż liczba kolumn. Na przykład rozważmy następującą macierz 3 na 5 T.
10111
11011
11101
Mówimy, że macierz ma właściwość X, jeśli zawiera dwa niepuste zbiory kolumn o nieidentycznych indeksach, które mają tę samą (wektorową) sumę. Suma wektorowa jednej lub więcej kolumn jest po prostu elementarnym sumowaniem ich kolumn. To jest suma dwóch lub więcej kolumn zawierających x
elementy, z których każda jest inną kolumną zawierającą x
elementy. Suma jednej kolumny jest trywialnie samą kolumną.
Powyższa macierz w sposób trywialny ma właściwość X, ponieważ pierwsza i ostatnia kolumna są takie same. Matryca tożsamości nigdy nie ma właściwości X.
Jeśli po prostu usuniemy ostatnią kolumnę macierzy powyżej, otrzymamy przykład, który nie ma właściwości X i dałby wynik 4/3.
1011
1101
1110
Zadanie
Zadanie polega na napisaniu kodu w celu znalezienia macierzy T o najwyższym wyniku z wpisami binarnymi, która nie ma właściwości X. Dla jasności macierz z wpisami binarnymi ma właściwość polegającą na tym, że każdy z jej wpisów ma wartość 0 lub 1.
Wynik
Twój wynik będzie liczbą kolumn podzieloną przez liczbę wierszy w najlepszej macierzy punktacji.
Tie Breaker
Jeśli dwie odpowiedzi mają ten sam wynik, wygrywa ten, który przesłał pierwszy.
W (bardzo) mało prawdopodobnym przypadku, gdy ktoś znajdzie sposób na uzyskanie nieograniczonej liczby punktów, zostanie zaakceptowany pierwszy ważny dowód takiego rozwiązania. W jeszcze bardziej mało prawdopodobnym przypadku, w którym można znaleźć dowód na optymalizację skończonej macierzy, oczywiście przyznam również zwycięstwo.
Wskazówka
Wszystkie odpowiedzi w Znajdź macierz najwyższych wyników bez właściwości X są tutaj ważne, ale nie są optymalne. Istnieją macierze T bez właściwości X, które nie są cykliczne.
Na przykład istnieje matryca 7 na 12 T bez właściwości X, ale nie ma takiej macierzy cyklicznej.
21/11 przebije wszystkie obecne odpowiedzi z tego i poprzedniego wyzwania.
Języki i biblioteki
Możesz używać dowolnego języka, który ma swobodnie dostępny kompilator / tłumacz / etc. dla systemu Linux i dowolnych bibliotek, które są również bezpłatnie dostępne dla systemu Linux.
Bonus Pierwsza odpowiedź z wynikiem większym niż 2 otrzymuje natychmiastową nagrodę w wysokości 200 punktów . Ton Hospel już to osiągnął!
Obecna tablica wyników
- C ++ . Ocena 31/15 przez Ton Hospel
- Java . Ocena 36/19 przez Peter Taylor
- Haskell . Ocena 14/8 przyznana przez Alexander-brett