Source: https://uqac.ca/rebaine/8INF212/CHAPITRE3recover.pdf