Mesurer le temps I
Dans les diapositives du cours, vous avez vu comment la fonction time.time() peut être importée et utilisée pour mesurer le temps nécessaire à une opération mathématique de base.
Vous allez maintenant appliquer la même approche pour comparer deux méthodes qui résolvent un problème semblable : calculer la somme des carrés de tous les entiers positifs de 1 à 1 million (1 000 000).
Comme dans la vidéo, vous comparerez deux méthodes : une méthode de force brute et une autre, plus sophistiquée sur le plan mathématique.
Dans la fonction formula, nous utilisons la formule classique
$$ \frac{N*(N+1)(2N+1)}{6} $$
où N = 1 000 000.
Dans la fonction brute_force, nous parcourons chaque nombre de 1 à 1 million et nous l'ajoutons au résultat.
Cette activité fait partie du cours
Rédiger du code efficace avec pandas
Instructions de l’exercice
- Calculez le résultat du problème avec la fonction
formula(). - Affichez le temps requis pour calculer le résultat avec la fonction
formula(). - Calculez le résultat du problème avec la fonction
brute_force(). - Affichez le temps requis pour calculer le résultat avec la fonction
brute_force().
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Calculate the result of the problem using formula() and print the time required
N = 1000000
fm_start_time = ____
first_method = formula(N)
print("Time using formula: {} sec".format(time.time() - fm_start_time))
# Calculate the result of the problem using brute_force() and print the time required
sm_start_time = ____
second_method = ____(N)
print("Time using the brute force: {} sec".format(time.time() - sm_start_time))