Ingresso
Una matrice Mrappresentata come due linee di numeri separati da spazi. Ogni riga avrà lo stesso numero di numeri interi e ogni numero intero sarà -1 o 1. Il numero di numeri interi per riga sarà al massimo 20. MSarà quindi 2da ndove si ntrova il numero di numeri interi su ciascuna delle due righe.
Il tuo codice dovrebbe essere un programma completo. e accetta l'input su standard in o da un file (che è la tua scelta). È possibile accettare input dallo standard in, da un file o semplicemente come parametro. Tuttavia, se fai quest'ultimo, fornisci un esempio esplicito di come dovrebbe funzionare il tuo codice e ricorda che deve essere un programma completo e come Mverrà rappresentata la matrice nell'input. In altre parole, è probabile che tu debba fare un po 'di analisi.
Produzione
La Shannon entropia binaria della distribuzione M*xdove gli elementi della xsono uniformemente e indipendentemente scelti da {-1,1}. xè un nvettore di colonna tridimensionale.
L'entropia di una distribuzione di probabilità discreta è
- sum p_i log_2(p_i)
In questo caso, p_iè la probabilità del ith unico possibile M*x.
Esempio e suggerimenti utili
Come esempio pratico, lasciare che la matrice Msia
-1 1
-1 -1
Ora guarda tutti i 2^2diversi vettori possibili x. Per ognuno calcoliamo M*xe mettiamo tutti i risultati in un array (un array a 4 elementi di vettori a 2 componenti). Sebbene per ciascuno dei 4 vettori la probabilità che si verifichi 1/2^2 = 1/4, siamo interessati solo al numero di volte in cui si verifica ciascun vettore risultante univocoM*x , e quindi riassumiamo le singole probabilità delle configurazioni che portano agli stessi vettori unici. In altre parole, i possibili M*xvettori unici descrivono i risultati della distribuzione che stiamo studiando e dobbiamo determinare la probabilità di ciascuno di questi risultati (che, per costruzione, sarà sempre un numero intero multiplo di 1/2^2, o 1/2^nin generale) per calcolare l'entropia.
Nel ncaso generale , a seconda Mdei possibili risultati di M*xpuò variare da "tutti diversi" (in questo caso abbiamo nvalori di iin p_i, e ognuno p_iè uguale a 1/2^n), a "tutti uguali" (in questo caso esiste un unico possibile risultato e p_1 = 1).
In particolare, per la 2x2matrice di Mcui sopra possiamo trovare moltiplicandola per le quattro possibili configurazioni ( [+-1; +-1]), che ogni vettore risultante è diverso. Quindi in questo caso ci sono quattro risultati, e di conseguenza p_1 = p_2 = p_3 = p_4 = 1/2^2 = 1/4. Ricordando che log_2(1/4) = -2abbiamo:
- sum p_i log_2(p_i) = -(4*(-2)/4) = 2
Quindi l'output finale per questa matrice è 2.
Casi test
Ingresso:
-1 -1
-1 -1
Produzione:
1.5
Ingresso:
-1 -1 -1 -1
-1 -1 -1 -1
Produzione:
2.03063906223
Ingresso:
-1 -1 -1 1
1 -1 -1 -1
Produzione:
3
x? 2. Nell'interesse di rendere autonoma la domanda, come vieneMxdefinita l' entropia binaria di Shannon ?