Eingang
Eine Matrix, Mdie als zwei durch Leerzeichen getrennte Zeilen von ganzen Zahlen dargestellt wird. Jede Zeile hat die gleiche Anzahl von Ganzzahlen, und jede Ganzzahl ist entweder -1 oder 1. Die Anzahl von Ganzzahlen pro Zeile beträgt höchstens 20. MDaher wird angegeben, 2von nwon die Anzahl der ganzen Zahlen auf jedem der beiden Linien.
Ihr Code sollte ein vollständiges Programm sein. und akzeptieren Sie die Eingabe entweder über Standard in oder aus einer Datei (das ist Ihre Wahl). Sie können Eingaben von standard in, aus einer Datei oder einfach als Parameter akzeptieren. Wenn Sie jedoch Letzteres tun, geben Sie bitte ein explizites Beispiel dafür, wie Ihr Code funktionieren soll, und denken Sie daran, dass es sich um ein vollständiges Programm handeln muss und wie die Matrix Min der Eingabe dargestellt wird. Mit anderen Worten, es ist wahrscheinlich, dass Sie eine Analyse durchführen müssen.
Ausgabe
Die binäre Shannon-Entropie der Verteilung, in der M*xdie Elemente von xgleichmäßig und unabhängig voneinander aus {-1,1} ausgewählt werden. xist ein neindimensionaler Spaltenvektor.
Die Entropie einer diskreten Wahrscheinlichkeitsverteilung ist
- sum p_i log_2(p_i)
In diesem Fall p_iist die Wahrscheinlichkeit der iEindeutig keit möglich M*x.
Beispiel und hilfreiche Tipps
Als bearbeitetes Beispiel sei die Matrix Msein
-1 1
-1 -1
Schauen Sie sich nun alle 2^2möglichen Vektoren an x. Für jedes berechnen wir M*xalle Ergebnisse und fügen sie in ein Array ein (ein 4-Element-Array von 2-Komponenten-Vektoren). Obwohl für jede der 4 Vektoren die Wahrscheinlichkeit der es auftritt , ist 1/2^2 = 1/4, sind wir nur in der Anzahl der Male interessiert jeder einzigartigen resultierenden Vektors M*xauftritt, und so bis Wir fassen die einzelnen Wahrscheinlichkeiten der Konfigurationen auf die gleichen einzigartigen Vektoren führt. Mit anderen Worten, die möglichen eindeutigen M*xVektoren beschreiben die Ergebnisse der Verteilung, die wir untersuchen, und wir müssen die Wahrscheinlichkeit jedes dieser Ergebnisse bestimmen (die konstruktionsbedingt immer ein ganzzahliges Vielfaches von 1/2^2oder sein werden1/2^n im Allgemeinen sein werden) Berechnen Sie die Entropie.
nAbhängig von Mden möglichen Ergebnissen von M*xkann der Bereich im Allgemeinen von "alle unterschiedlich" (in diesem Fall haben wir nWerte von iin p_iund jeder p_iist gleich 1/2^n) bis "alle gleich" (in diesem Fall gibt es ein einzelnes mögliches) reichen Ergebnis, und p_1 = 1).
Insbesondere können wir für die obige 2x2Matrix Mdurch Multiplizieren mit den vier möglichen Konfigurationen ( [+-1; +-1]) feststellen , dass jeder resultierende Vektor unterschiedlich ist. In diesem Fall gibt es also vier Ergebnisse und folglich p_1 = p_2 = p_3 = p_4 = 1/2^2 = 1/4. Daran erinnern, dass log_2(1/4) = -2wir haben:
- sum p_i log_2(p_i) = -(4*(-2)/4) = 2
Die endgültige Ausgabe für diese Matrix ist also 2.
Testfälle
Eingang:
-1 -1
-1 -1
Ausgabe:
1.5
Eingang:
-1 -1 -1 -1
-1 -1 -1 -1
Ausgabe:
2.03063906223
Eingang:
-1 -1 -1 1
1 -1 -1 -1
Ausgabe:
3
x? 2. Wie wird die binäre Shannon-EntropieMxdefiniert , um die Frage in sich geschlossen zu machen ?