Entrada
Uma matriz M
representada como duas linhas de números inteiros separados por espaço. Cada linha terá o mesmo número de números inteiros e cada número inteiro será -1 ou 1. O número de números inteiros por linha será no máximo 20. M
será, portanto 2
, n
onde n
é o número de números inteiros em cada uma das duas linhas.
Seu código deve ser um programa completo. e aceite a entrada no padrão em ou a partir de um arquivo (que é sua escolha). Você pode aceitar entrada de entrada padrão, de um arquivo ou simplesmente como um parâmetro. No entanto, se você fizer o último, dê um exemplo explícito de como seu código deve funcionar e lembre-se de que ele deve ser um programa completo e como a matriz M
será representada na entrada. Em outras palavras, é provável que você precise fazer uma análise.
Resultado
A entropia binária de Shannon da distribuição de M*x
onde os elementos de x
são escolhidos de maneira uniforme e independente de {-1,1}. x
é um n
vetor de coluna tridimensional.
A entropia de uma distribuição de probabilidade discreta é
- sum p_i log_2(p_i)
Nesse caso, p_i
é a probabilidade do i
th único possível M*x
.
Exemplo e dicas úteis
Como exemplo trabalhado, deixe a matriz M
ser
-1 1
-1 -1
Agora observe todos os 2^2
diferentes vetores possíveis x
. Para cada um, calculamos M*x
e colocamos todos os resultados em uma matriz (uma matriz de 4 elementos de vetores de 2 componentes). Embora para cada um dos quatro vetores a probabilidade de ocorrência seja 1/2^2 = 1/4
, estamos interessados apenas no número de vezes que cada vetor resultante exclusivoM*x
ocorre e, portanto, resumimos as probabilidades individuais das configurações que levam aos mesmos vetores únicos. Em outras palavras, os possíveis M*x
vetores exclusivos descrevem os resultados da distribuição que estamos investigando e precisamos determinar a probabilidade de cada um desses resultados (que, por construção, sempre será um múltiplo inteiro de 1/2^2
, ou 1/2^n
em geral) para calcular a entropia.
No n
caso geral , dependendo M
dos possíveis resultados de M*x
pode variar de "todos diferentes" (neste caso, temos n
valores de i
in p_i
e cada um p_i
é igual a 1/2^n
) a "todos iguais" (neste caso, existe uma única possibilidade resultado e p_1 = 1
).
Especificamente, para a 2x2
matriz acima M
, podemos descobrir, multiplicando-a pelas quatro configurações possíveis ( [+-1; +-1]
), que cada vetor resultante é diferente. Portanto, neste caso, existem quatro resultados e, consequentemente p_1 = p_2 = p_3 = p_4 = 1/2^2 = 1/4
. Lembrando que log_2(1/4) = -2
temos:
- sum p_i log_2(p_i) = -(4*(-2)/4) = 2
Portanto, a saída final para esta matriz é 2.
Casos de teste
Entrada:
-1 -1
-1 -1
Resultado:
1.5
Entrada:
-1 -1 -1 -1
-1 -1 -1 -1
Resultado:
2.03063906223
Entrada:
-1 -1 -1 1
1 -1 -1 -1
Resultado:
3
x
? 2. No interesse de tornar a questão independente, como éMx
definida a entropia binária de Shannon ?