Wejście
Macierz Mreprezentowana jako dwie oddzielone spacjami linie liczb całkowitych. Każda linia będzie miała tę samą liczbę liczb całkowitych, a każda liczba całkowita będzie wynosić -1 lub 1. Liczba liczb całkowitych w wierszu będzie wynosić co najwyżej 20. Mbędzie zatem 2, ngdzie njest liczba liczb całkowitych w każdej z dwóch linii.
Twój kod powinien być kompletnym programem. i zaakceptuj dane wejściowe w standardowym pliku lub z pliku (to twój wybór). Możesz zaakceptować dane wejściowe ze standardowego wejścia, pliku lub po prostu jako parametr. Jeśli jednak zrobisz to drugie, podaj wyraźny przykład działania kodu i pamiętaj, że musi to być kompletny program i jak macierz Mbędzie reprezentowana na wejściu. Innymi słowy, prawdopodobnie będziesz musiał parsować.
Wynik
Binarny Shannon entropia rozkładu M*x, gdzie elementy xsą równomiernie i są niezależnie wybrane z {-1,1}. xto nwymiarowy wektor kolumny.
Entropia dyskretnego rozkładu prawdopodobieństwa jest
- sum p_i log_2(p_i)
W tym przypadku p_iprawdopodobieństwo itego unikalnego jest możliwe M*x.
Przykład i pomocne wskazówki
Jako sprawdzony przykład niech Mbędzie macierz
-1 1
-1 -1
Teraz spójrz na wszystkie 2^2możliwe wektory x. Dla każdego obliczamy M*xi umieszczamy wszystkie wyniki w tablicy (4-elementowa tablica 2-komponentowych wektorów). Chociaż dla każdego z 4 wektorów istnieje prawdopodobieństwo jego wystąpienia 1/2^2 = 1/4, interesuje nas tylko liczba przypadków, w których wystąpi każdy unikalny wektor wynikowy M*x, dlatego podsumowujemy indywidualne prawdopodobieństwa konfiguracji prowadzących do tych samych unikalnych wektorów. Innymi słowy, możliwe unikalne M*xwektory opisują wyniki rozkładu, który badamy, i musimy określić prawdopodobieństwo każdego z tych wyników (które z założenia zawsze będą całkowitą wielokrotnością 1/2^2lub 1/2^nogólnie) do obliczyć entropię.
W ogólnym nprzypadku, w zależności od Mmożliwych wyników M*xmoże wahać się od „wszystkie różne” (w tym przypadku mamy nwartości iin p_i, i każda p_ijest równa 1/2^n), do „wszystkie takie same” (w tym przypadku jest jedna możliwa wynik i p_1 = 1).
W szczególności dla powyższej 2x2macierzy Mmożemy przekonać się, mnożąc ją przez cztery możliwe konfiguracje ( [+-1; +-1]), że każdy powstały wektor jest inny. Zatem w tym przypadku są cztery wyniki, a w konsekwencji p_1 = p_2 = p_3 = p_4 = 1/2^2 = 1/4. Przypominając, że log_2(1/4) = -2mamy:
- sum p_i log_2(p_i) = -(4*(-2)/4) = 2
Zatem końcowy wynik dla tej macierzy wynosi 2.
Przypadki testowe
Wejście:
-1 -1
-1 -1
Wynik:
1.5
Wejście:
-1 -1 -1 -1
-1 -1 -1 -1
Wynik:
2.03063906223
Wejście:
-1 -1 -1 1
1 -1 -1 -1
Wynik:
3
x? 2. W jaki sposóbMxdefiniuje się binarną entropię Shannona w celu uczynienia pytania samodzielnym ?