From 2c03f8ba7a169b83108d2799c1ad8d693ef374c9 Mon Sep 17 00:00:00 2001
From: Orestis <orestis.malaspinas@pm.me>
Date: Fri, 21 Feb 2025 09:09:54 +0100
Subject: [PATCH] added exs

---
 slides/cours_14.md | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/slides/cours_14.md b/slides/cours_14.md
index 3d47804..b57bb9b 100644
--- a/slides/cours_14.md
+++ b/slides/cours_14.md
@@ -187,6 +187,8 @@ bool binary_get2(int n, key_value_t table[n], key_t key, value_t *value) {
 
 # Transformation de clé (hashing)
 
+\footnotesize
+
 ## Problématique: Numéro AVS (13 chiffres)
 
 * Format: 106.3123.8492.13
@@ -572,3 +574,36 @@ Avantages:
 * On suppose que la table est initialement vide, de taille $n = 13$.
 * Utiliser la fonction $h1(k)= k \mod 13$ où k est la $k$-ème lettre de l'alphabet et un traitement séquentiel des collisions.
 
+# Exercice 2
+
+* Reprendre l'exercice 1 et utiliser la technique de double hachage pour traiter
+  les collisions avec
+
+\begin{align*}
+h_1(k)&=k\mod 13,\\
+h_2(k)&=1+(k\mod 11).
+\end{align*}
+* La fonction de hachage est donc $h(k)=(h(k)+h_2(k)) \% 13$ en cas de
+  collision.
+
+# Exercice 3
+
+* Stocker les numéros de téléphones internes d'une entreprise suivants dans un
+tableau de 10 positions.
+* Les numéros sont compris entre 100 et 299.
+* Soit $N$ le numéro de téléphone, la fonction de hachage est
+$$
+h(N)=N\mod 10.
+$$
+* La fonction de gestion des collisions est
+$$
+C_1(N,i)=(h(N)+3\cdot i)\mod 10.
+$$
+* Placer 145, 167, 110, 175, 210, 215 (mettre son état à occupé).
+* Supprimer 175 (rechercher 175, et mettre son état à supprimé).
+* Rechercher 35.
+* Les cases ni supprimées, ni occupées sont vides.
+* Expliquer se qui se passe si on utilise?
+$$
+C_1(N,i)=(h(N)+5\cdot i)\mod 10.
+$$
-- 
GitLab