TP Python – Mesures et explosions
BTS SIO SISR 2e année – Pour aller plus loin – S15
Note
Comment ce TP fonctionne. Chaque exercice a un éditeur Python intégré à la page (il s'exécute dans ton navigateur, rien à installer). Avant de lancer, écris sur ta feuille ce que tu anticipes (« J'anticipe »). Puis lance et compare. Le bouton Valider exécute des tests : un test réussi ne dispense pas de comprendre pourquoi.
Exercice A – Temps minimal
Écris temps_min(f, repetitions) qui appelle f() repetitions fois, mesure chaque durée avec time.perf_counter() et renvoie la plus petite (un float positif ou nul).
J'anticipe. Pourquoi garder le minimum plutôt que la moyenne ?
import timebksl-nlbksl-nlbksl-nldef tempspy-undmin(f, repetitions):bksl-nl """Plus petite duree (en secondes) de repetitions appels de f()."""bksl-nl ...bksl-nlbksl-nl
Exercice B – Essais de force brute
Écris essais_force_brute(taille_alphabet, longueur) qui renvoie le nombre d'essais de la force brute.
J'anticipe. Retrouve les valeurs de l'exercice 2.
def essaispy-undforcepy-undbrute(taillepy-undalphabet, longueur):bksl-nl """Nombre d'essais de la force brute."""bksl-nl ...bksl-nlbksl-nl
Exercice C – Durée de la force brute
Écris jours_force_brute(taille_alphabet, longueur, par_seconde) qui renvoie la durée maximale en jours (tous les essais) à par_seconde essais par seconde.
def jourspy-undforcepy-undbrute(taillepy-undalphabet, longueur, parpy-undseconde):bksl-nl """Duree maximale en jours."""bksl-nl ...bksl-nlbksl-nl
Je comprends. Quelle est ton hypothèse de vitesse ? Pourquoi faut-il toujours l'annoncer ?
Exercice D – Nombre de tournées
Écris nb_tournees(n) qui renvoie (n - 1)! pour n >= 1. Calcule la factorielle avec une boucle (sans math.factorial).
def nbpy-undtournees(n):bksl-nl """(n-1)! : nombre d'ordres de visite, premier site fixe."""bksl-nl ...bksl-nlbksl-nl
Exercice E – Doublons avec un ensemble
Écris doublons_set(L) qui renvoie True si L contient au moins deux éléments égaux, en utilisant un ensemble (set).
def doublonspy-undset(L):bksl-nl """True si L contient un doublon (avec un ensemble)."""bksl-nl ...bksl-nlbksl-nl
Je comprends. Quel est le coût mémoire de cette méthode ?