Adloun

La statistique des alvéoles

Exercice · informatique (tronc commun des prépas scientifiques), chapitre 17 — Les dictionnaires dévoilés : le hachage

Énoncé

Réaliser une simulation en insérant clés aléatoires dans une table comportant alvéoles (facteur de charge de ). Écrire un script pour mesurer la proportion d'alvéoles vides, la longueur moyenne des chaînes occupées et la longueur maximale d'alvéole. Comparer le résultat obtenu avec les prédictions théoriques.

Corrigé

import random

m = 1000
n = 1000
longueurs = [0] * m

# Simulation de l'insertion de n clés distribuées au hasard
for _ in range(n):
    indice_aleatoire = random.randrange(m)
    longueurs[indice_aleatoire] += 1

# Statistiques
nb_vides = longueurs.count(0)
proport_vides = nb_vides / m
alv_occupees = [l for l in longueurs if l > 0]
moyenne_non_vides = sum(alv_occupees) / len(alv_occupees)
longueur_max = max(longueurs)

print(f"Proportion d'alvéoles vides : {proport_vides * 100:.2f}%")
print(f"Longueur moyenne des chaînes non vides : {moyenne_non_vides:.2f}")
print(f"Longueur maximale observée : {longueur_max}")

Analyses et interprétations :

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.