Entrada
Una matriz M
representada 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. M
por lo tanto ser 2
por n
donde n
es 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 M
se 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*x
donde los elementos de x
se eligen de manera uniforme e independiente de {-1,1}. x
es un n
vector 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_i
es la probabilidad del i
th único posible M*x
.
Ejemplo y sugerencias útiles
Como ejemplo trabajado, deje que la matriz M
sea
-1 1
-1 -1
Ahora mira todos los 2^2
diferentes vectores posibles x
. Para cada uno calculamos M*x
y 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*x
vectores ú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^n
en general) para Calcule la entropía.
En el n
caso general , dependiendo de M
los posibles resultados de M*x
puede variar de "todos diferentes" (en este caso tenemos n
valores de i
in p_i
, y cada uno p_i
es igual a 1/2^n
), a "todos iguales" (en este caso hay un único posible resultado, y p_1 = 1
).
Específicamente, para la 2x2
matriz anterior , M
podemos 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) = -2
tenemos:
- 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 seMx
define la entropía binaria de Shannon ?