diff --git a/tp_2_miso_mphf.py b/tp_2_miso_mphf.py index ebc3d3328dd4c33b1c29a5692f95b319518eb291..9423c8db3a9a0e061b26b0372798da800570e62e 100644 --- a/tp_2_miso_mphf.py +++ b/tp_2_miso_mphf.py @@ -41,12 +41,13 @@ def construction_mphf(set_kmer, n, gamma=2, nb_niveaux=3): l = len(set_kmer_courant) tableau_principal = [-1] * (gamma * l) for kmer in set_kmer_courant: - pass # compléter - # hacher le k-mer (attention, hash() peut rendre des entiers signés, nous voulons des entiers positifs) - # récupérer l'adresse - # si le tableau principal est déjà rempli à l'adresse: - # mettre le kmer dans collision() - #sinon, écrire le hash à l'adresse dans le tableau principal + h = abs(hash(kmer)) + address = h % (gamma * l) + if tableau_principal[address] != -1: + collision.add(kmer) + else : + tableau_principal[address] = kmer + tableaux.append(tableau_principal) # expliquer set_kmer_courant = collision.copy() # expliquer