Source: http://denif.ens-lyon.fr/data/theorie_information_x/2007/cours/cours2.pdf