2017-07-09 7 views
-1

Nでプログラムスケールの性能をプロットしますか?このためには、プログラムを何度も実行し、プロットのNの所与の値に対して取られる最小時間をとってください。 N = 10,20,40,80,100,200,400,800,1000,2000,4000,8000,10000などの値の範囲を使用できます。 N = 10,20,40,80,100,200,400,800,1000,2000,4000,8000,10000などのPythonの値range()はどのように使用できますか?累乗のステップサイズが10で、桁数が0になる範囲関数

numbers_sizes = (i*exp for exp in range(2, 10,2) for i in range(10, 10000,10*2)) 

しかし、あなたは「レース」実際にある、時にはその後、2のべき乗でバイナリOPSを数学をやっている場合、これは必要な答え

+0

私は質問を理解できません。番号にゼロを追加したい場合(タイトルのように)、zfillを使うことができます。 '1'のように.zfill(4)>>> '0001' – Park

+0

はさらに詳しい説明が必要です。 – ShivaGuntuku

答えて

0

整数の除算といくつかのモジュロ演算

[10**(1+i//4)*2**(i%4) for i in range(15)] 
Out[179]: 
[10, 
20, 
40, 
80, 
100, 
200, 
400, 
800, 
1000, 
2000, 
4000, 
8000, 
10000, 
20000, 
40000] 

を提供していません少しコンパクトにコンパイルされ、より速く実行される可能性があります

import timeit 
>>> timeit.timeit('[10**(1+i//4)*2**(i%4) for i in range(100)]', number=1000) 
Out[197]: 0.06518084562951763 


[10**(1+(i>>2))<<(i & 3) for i in range(15)] 

timeit.timeit('[10**(1+(i>>2))<<(i & 3) for i in range(100)]', number=1000) 
Out[199]: 0.04540084575825176 
関連する問題