import math


def entropy(x):
    """
     Function to compute the entropy of a given vector.
    :param x: a vector composed by discrete variables
    :return: A real number
    """
    cuenta=dict(zip(x,(map(lambda el: x.count(el),x))))
    n=len(x)
    nCuenta=len(cuenta)
    entropia=0
    for i in range(nCuenta):
        probabilidad=list(cuenta.values())[i]/n
        if(probabilidad>0):
            entropia=entropia+((-1)*probabilidad*math.log2(probabilidad))
    return entropia