Source: https://lim.univ-reunion.fr/staff/courdier/old/cours/si/ressources_articles/article_15p_Levasseur_methodo.pdf