From 6fe31ba6dc77b26a5130407d94b5d3d384294ac9 Mon Sep 17 00:00:00 2001 From: Lecocq Simon <simon.lecocq2.etu@a16p10.fil.univ-lille.fr> Date: Wed, 26 Feb 2025 14:11:14 +0100 Subject: [PATCH] create table --- tp_2_miso_mphf.py | 56 +++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/tp_2_miso_mphf.py b/tp_2_miso_mphf.py index a7a0717..73849c5 100644 --- a/tp_2_miso_mphf.py +++ b/tp_2_miso_mphf.py @@ -8,7 +8,7 @@ import random ###### PARTIE 1 ###### def construction_mphf(set_kmer:set[str], n:int, gamma:float=2, nb_niveaux:int=3) -> list[list[int]]: - + """ Construit une fonction de hachage minimale parfaite (MPHF) pour un ensemble de k-mers. @@ -98,36 +98,36 @@ def get_hash_mphf(mphf, kmer): True """ h = abs(hash(kmer)) - for h-mphf,rang in mphf: - if h-mohf == h : + for h_mphf,rang in mphf: + if h_mphf == h : return rang def create_hash_table(set_kmer, n): - """ - Crée une table de hachage à partir d'un ensemble de k-mers et d'une mphf - - Parameters: - set_kmer (set): Ensemble de k-mers. - n (int): Taille de la table de hachage. - - Returns: - list: Table de hachage créée à partir des k-mers - mphf: la mphf - - Examples: - >>> set_kmer = {'ATCG', 'TGCA', 'GCTA'} - >>> n = 10 - >>> tableau = create_hash_table(set_kmer, n) - >>> len(tableau) == n - True - >>> all(kmer in tableau for kmer in set_kmer) - True - """ - pass # TODO modifier - # créer la mphf pour les kmers - # initialiser un tableau de taille n (une liste) - # écrire les kmers aux adresses du tableau données par la mphf - # retourner le tableau et la mphf + """ + Crée une table de hachage à partir d'un ensemble de k-mers et d'une mphf + + Parameters: + set_kmer (set): Ensemble de k-mers. + n (int): Taille de la table de hachage. + + Returns: + list: Table de hachage créée à partir des k-mers + mphf: la mphf + + Examples: + >>> set_kmer = {'ATCG', 'TGCA', 'GCTA'} + >>> n = 10 + >>> tableau = create_hash_table(set_kmer, n) + >>> len(tableau) == n + True + >>> all(kmer in tableau for kmer in set_kmer) + True + """ + mphf = construction_mphf(set_kmer, n) + table = [-1 for i in range(n)] + for h_kmer, rang in mphf: + table[rang] = h_kmer + return table, mphf -- GitLab