Entropia. X94098


Statement
 

pdf   zip   main.R

Feu la funció entropia(V) tal que, donat un vector V, que conté nombres naturals, en torni l’entropia de Shannon.

L’entropia de Shannon per a un conjunt 𝒳\mathcal{X} es calcula amb la fórmula:

H(X)=x𝒳p(x)logbp(x).\begin{equation} H(X) = -\sum_{x \in \mathcal{X}} p(x) \log_b p(x). \end{equation}

En el nostre cas, substitïm la probabilitat p(x)p(x) d’un element x𝒳x \in \mathcal{X} per la freqüència dins del vector v. D’aquesta manera, la fórmula que cal calcular és:

H(X)=x1:Nfreq(x,v)Nlog2(freq(x,v)N).\begin{equation} H(X) = -\sum_{x \in 1:N} \frac{freq(x,v)}{N} \log_2 (\frac{freq(x,v)}{N}). \end{equation}

on freq(x,v)freq(x,v) és la freqüència del nombre x al vector V.

Per a calcular el logaritme en base 2 en R podeu fer servir la funció log2(x).

Entrada

Un vector V de naturals.

Sortida

L’entropia de Shannon de V.

Public test cases
  • Input

    4
    1 2 3 4
    
    

    Output

    2 
    
  • Input

    8
    1 1 1 1 4 4 5 5
    
    

    Output

    1.5 
    
  • Information
    Author
    Jaume Baixeries
    Language
    Catalan
    Official solutions
    R
    User solutions
    R