Source: http://www.esiee.fr/~bercherj/New/polys/poly_alea.pdf