diff --git a/tp_2_miso_mphf.py b/tp_2_miso_mphf.py
index a87b4448dec251dfb5272f5310016374a6bc721e..18df0ab9a04d1e6bb1c80f1a97da69845785b5b8 100644
--- a/tp_2_miso_mphf.py
+++ b/tp_2_miso_mphf.py
@@ -46,7 +46,7 @@ def construction_mphf(set_kmer, n, gamma=2, nb_niveaux=3):
 				if tableau_principal[address] != -1:
 					collision.add(kmer)
 				else :
-					tableau_principal[address] = kmer
+					tableau_principal[address] = h
 
 			tableaux.append(tableau_principal) # Addition du tableau du dernier niveau dans un tableau contenant tous les tableaux des précédents niveaux
 			set_kmer_courant = collision.copy() # Création d'un set de kmer à partir des collisions pour créer tableau du niveau suivant
@@ -58,17 +58,16 @@ def construction_mphf(set_kmer, n, gamma=2, nb_niveaux=3):
 	for tableau in tableaux:
 		grand_tableau.extend(tableau) # Concaténation de tous les tableaux de niveaux
 
-	rangs = []
+
 	max_rang = 0
-	i = 0
+
 	for kmer in set_kmer:
-		pass # compléter:
-		# hacher le kmer
-		# si le hash est dans le grand_tableau
-			# récupérer son index
-			# récupérer son rang (utiliser la fonction count())
-			# ajouter à la mphf [h, rang]
-			# mettre à jour max_rang
+		h = hash(kmer)
+		if h in grand_tableau:
+			index = grand_tableau.index(h)
+			rang = index - grand_tableau[:index + 1].count(-1)
+			mphf.append((h, rang))
+			max_rang = max(max_rang, rang)
 
 	for kmer in set_kmer_courant: #gestion des collisions: expliquer les 3 lignes du dessous
 		max_rang += 1