Pour enfoncer le clou : notons l'ensemble des endomorphismes de rang , et considérons l'application


qui, à un endomorphisme f, associe le couple formé de Im(f) et des r premières lignes de la matrice de f dans une base de Im(f) complétée (les autres lignes étant nulles).

C'est une application bien définie, pouvu que l'on se donne un moyen algorithmique de trouver une base d'un espace sous-espace vectoriel et de la compléter en une base de E.
Dans ce cas, il est facile de voir que cette application est injective.

De plus, la seule condition sur est que les r premières lignes de la matrice de f sont libres.

On en déduit que induit une bijection de l'ensemble des endomorphismes de rang r, vers l'ensemble des couples formés d'un espace vectoriel de dimension r, et d'un r-uplet de vecteurs de E formant une famille libre.

Reste à calculer :
- le nombre de r-uplets de vecteurs libres : c'est, comme on l'a dit µµmut dans un message précédent


- Le nombre de sous-espaces de E de dimension r : pour cela il suffit de voir qu'un tel espace est déterminée par une base, donc r vecteurs libres, et que chaque espace admet le même nombre de bases. Donc le nombre de sous-espaces de E de dimension r est :


Finalement, le nombre d'endomorphismes de rang r est donné par :