implémentation de l'algorithme de base du générateur; il faut le passer en objet