diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..105ce2da2d6447d11dfe32bfb846c3d5b199fc99
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+<component name="InspectionProjectProfileManager">
+  <settings>
+    <option name="USE_PROJECT_PROFILE" value="false" />
+    <version value="1.0" />
+  </settings>
+</component>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..055f8e6f15802a8c3ed2715b8f0c759a23f8f0da
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Black">
+    <option name="sdkName" value="Python 3.13 (environnement)" />
+  </component>
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.13 (environnement)" project-jdk-type="Python SDK" />
+</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..28dfc9aca66065bbcd92236e0c464b1349c2d91a
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/tp2-hachage.iml" filepath="$PROJECT_DIR$/.idea/tp2-hachage.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/tp2-hachage.iml b/.idea/tp2-hachage.iml
new file mode 100644
index 0000000000000000000000000000000000000000..a7801594c84798512956927d63fe0e3198ddf72a
--- /dev/null
+++ b/.idea/tp2-hachage.iml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="PYTHON_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="jdk" jdkName="Python 3.13 (environnement)" jdkType="Python SDK" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+  <component name="PyDocumentationSettings">
+    <option name="format" value="PLAIN" />
+    <option name="myDocStringFormat" value="Plain" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/__pycache__/tp_2_miso_mphf.cpython-313.pyc b/__pycache__/tp_2_miso_mphf.cpython-313.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..28673da4928e5debf5d1e2ca9e52a701471e1cef
Binary files /dev/null and b/__pycache__/tp_2_miso_mphf.cpython-313.pyc differ
diff --git a/histogramme.png b/histogramme.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b6e07f92367b27c2fe77374b212c57977df2a1b
Binary files /dev/null and b/histogramme.png differ
diff --git a/mphf.png b/mphf.png
new file mode 100644
index 0000000000000000000000000000000000000000..972f666ddf89536cd02c5df7f5fc95361430c896
Binary files /dev/null and b/mphf.png differ
diff --git a/tp_2_miso_dict.py b/tp_2_miso_dict.py
index cf5948dfc104b6394deb1edf7fbb5d14c48eeb55..35c7449a79fa189c25aa85952cd9a2158ce45061 100644
--- a/tp_2_miso_dict.py
+++ b/tp_2_miso_dict.py
@@ -11,7 +11,46 @@ def experiment_load_factor(load_factors):
 	"""
 	Étude du facteur de charge
 	"""
-	return [],[],[]
+	insertion_times = []
+	search_times = []
+	deletion_times = []
+
+	for load_factor in load_factors:
+		d = {}
+		size = int(10000 * load_factor)  # Taille de la structure en fonction du facteur charge
+
+		# Mesure du temps d'insertion
+		start_time = time.time()
+		for i in range(size):
+			key = str(i)
+		value = i
+		d[key] = value
+
+	insertion_time = time.time() - start_time
+	insertion_times.append(insertion_time)
+
+	# Mesure du temps de recherche
+	start_time = time.time()
+	for i in range(size):
+		key = str(i)
+		_ = d.get(key)  # Recherche de la clé
+
+	search_time = time.time() - start_time
+	search_times.append(search_time)
+
+	# Réiitialisation du dictionnaire pour la suppression
+	d = {str(i): i for i in range(size)}
+
+	# Mesure du temps de suppression
+	start_time = time.time()
+	for i in range(size):
+		key = str(i)
+		del d[key]
+	deletion_time = time.time() - start_time
+	deletion_times.append(deletion_time)
+
+	return insertion_times, search_times, deletion_times
+
 
 def experiment_longest():
 	"""