Entrada
Una matriz Mrepresentada como dos líneas enteras separadas por espacios. Cada línea tendrá el mismo número de números enteros y cada entero será o bien -1 o 1. El número de números enteros por línea será como máximo 20. Mpor lo tanto ser 2por ndonde nes el número de enteros en cada una de las dos líneas.
Su código debe ser un programa completo. y acepte la entrada de forma estándar en o desde un archivo (esa es su elección). Puede aceptar entradas de entrada estándar, de un archivo o simplemente como parámetro. Sin embargo, si hace lo último, proporcione un ejemplo explícito de cómo debería funcionar su código y recuerde que debe ser un programa completo y cómo Mse representará la matriz en la entrada. En otras palabras, es probable que tengas que analizar un poco.
Salida
La entropía binaria de Shannon de la distribución de M*xdonde los elementos de xse eligen de manera uniforme e independiente de {-1,1}. xes un nvector de columna dimensional.
La entropía de una distribución de probabilidad discreta es
- sum p_i log_2(p_i)
En este caso, p_ies la probabilidad del ith único posible M*x.
Ejemplo y sugerencias útiles
Como ejemplo trabajado, deje que la matriz Msea
-1 1
-1 -1
Ahora mira todos los 2^2diferentes vectores posibles x. Para cada uno calculamos M*xy colocamos todos los resultados en una matriz (una matriz de 4 elementos de vectores de 2 componentes). Aunque para cada uno de los 4 vectores la probabilidad de que ocurra es 1/2^2 = 1/4, solo nos interesa la cantidad de veces que ocurre cada vector resultante únicoM*x , por lo que resumimos las probabilidades individuales de las configuraciones que conducen a los mismos vectores únicos. En otras palabras, los posibles M*xvectores únicos describen los resultados de la distribución que estamos investigando, y tenemos que determinar la probabilidad de cada uno de estos resultados (que, por construcción, siempre será un múltiplo entero de 1/2^2, o 1/2^nen general) para Calcule la entropía.
En el ncaso general , dependiendo de Mlos posibles resultados de M*xpuede variar de "todos diferentes" (en este caso tenemos nvalores de iin p_i, y cada uno p_ies igual a 1/2^n), a "todos iguales" (en este caso hay un único posible resultado, y p_1 = 1).
Específicamente, para la 2x2matriz anterior , Mpodemos encontrar multiplicándola con las cuatro configuraciones posibles ( [+-1; +-1]), que cada vector resultante es diferente. Entonces, en este caso hay cuatro resultados, y en consecuencia p_1 = p_2 = p_3 = p_4 = 1/2^2 = 1/4. Recordando que log_2(1/4) = -2tenemos:
- sum p_i log_2(p_i) = -(4*(-2)/4) = 2
Entonces el resultado final para esta matriz es 2.
Casos de prueba
Entrada:
-1 -1
-1 -1
Salida:
1.5
Entrada:
-1 -1 -1 -1
-1 -1 -1 -1
Salida:
2.03063906223
Entrada:
-1 -1 -1 1
1 -1 -1 -1
Salida:
3
x? 2. En aras de hacer que la pregunta sea autónoma, ¿cómo seMxdefine la entropía binaria de Shannon ?