始める無料で始める

時間の計測 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))
コードを編集して実行