時間の計測 I
講義スライドでは、time.time() 関数を読み込んで、基本的な数値計算にかかる時間を測定する方法を見ました。
ここでは同じ方法を使って、似た問題を解く2つのやり方を比較します。問題は、1から100万(1,000,000)までの正の整数の二乗和を計算することです。
動画で見たのと同様に、総当たりの方法と、より数学的に洗練された方法の2つを比べます。
formula 関数では、次の標準的な公式を使います。
$$ \frac{N*(N+1)(2N+1)}{6} $$
ここで N=1,000,000 です。
brute_force 関数では、1から100万までの各数をループし、結果に加算していきます。
この演習はコースの一部です
pandasで効率的にコードを書く
演習の手順
formula()関数を使って問題の結果を計算してください。formula()関数で結果を計算するのにかかった時間を出力してください。brute_force()関数を使って問題の結果を計算してください。brute_force()関数で結果を計算するのにかかった時間を出力してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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))