Entropia. X36022


Statement
 

pdf   zip   main.py

html

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 X es calcula amb la fórmula:

H(X) = −
 
x ∈ X
 p(x) logb p(x).     (1)

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

H(X) = −
 
x ∈ 1:N
 
freq(x,v)
N
 log2 (
freq(x,v)
N
).     (2)

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

Per a calcular el logaritme en base 2 en python podeu fer servir la funció math.log2(x). Abans, però, caldrà que afegiu import math a la vostra solució.

Observació

Només cal que enviïs el fitxer amb la funció (i les funcions auxiliars que hagis fet) que et demanem i prou. El fitxer main.py et pot servir per a fer la teva solució, però no cal que n’enviïs el contingut.

Entrada

Un vector V de naturals.

Sortida

L’entropia de Shannon de V.

Public test cases
  • Input

    1 2 3 4
    
    

    Output

    2.0
    
  • Input

    1 1 1 1 4 4 5 5
    
    

    Output

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