Source: https://who.rocq.inria.fr/Michel.Kern/Docs/MACS2_AnaNumAv_TD1_corrige.pdf