2017-01-15 8 views
-3

は、私は何が起こっているか、私は常に0.003なぜPythonのthis forループには時間がかかりますか?

0.0031050000000050204 

周りの出力を得るように見えるどんなに私は、引数として入力した内容Jupyterノート

import time 

def time_loop(reps): 

    start = time.clock() 
    count = 0 
    for i in range(reps): 
     count += 1 
    return time.clock() - start 

time_loop(10000^100) 

にこの小さなループを実行しているんですか?

1つの推測では、ループの結果は単にcount = repsとなり、ループを終了することをPythonは理解していますか?

しかし、私が代わりに

import time 
import numpy as np 

def time_loop(reps): 

    start = time.clock() 
    count = 0 
    for i in range(reps): 
     count += np.sin(reps) 
    return time.clock() - start 

time_loop(10000^100) 

これを実行する場合、私は、引数を増やすように、それはループの結果は非常に単純に*罪(担当者)を数える=担当者はまだであっても、時間がかかるん。

+0

あなたはどう思いますか '10000^100 'は計算されますか?べき乗ではありません。それは排他的な「または」です。 –

答えて

1

^は、XORないexponentationです:返す**、::また、 "ながら" 反復処理するのにかかる

>>> 10000**100 
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 

大きな数だがexponentationで好きではない
>>> 10000^100 
10100 

事業者の参考とそれらの優先順位はpython documentationで下盛です:

^- ビット単位のXOR

** - べき乗

関連する問題