Source: http://cours-examens.org/images/An_2013_2/Etude_superieure/Ingeniorat_informatique/MATHETINFO/STATEFPL/SIC2014Poly2.pdf