Mesurer le temps I
Dans les diaporamas du cours, vous avez vu comment la fonction time.time() peut être importée et utilisée pour évaluer le temps nécessaire à l’exécution d’une opération mathématique basique.
Vous allez maintenant utiliser la même stratégie pour évaluer deux méthodes différentes visant à résoudre un problème similaire : 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 : l’une par force brute, l’autre plus élaboré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 l’ajoutons au résultat.
Cet exercice fait partie du cours
Écrire du code efficace avec pandas
Instructions
- Calculez le résultat du problème avec la fonction
formula(). - Affichez le temps nécessaire pour calculer le résultat avec la fonction
formula(). - Calculez le résultat du problème avec la fonction
brute_force(). - Affichez le temps nécessaire pour calculer le résultat avec la fonction
brute_force().
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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))