4
timeit.timeit("A0([randint(1,256) * (-1) ** randint(1,2) for j in range("+str(n)+")])", setup="from HW2 import A0", number=1000000)

A0 アルゴリズムがサイズ n のリストでジョブを完了するのにかかる時間を測定したいのですが、リストを生成して変数として timeit.timeit(.. 。) 方法。タイマーは、A0 が完了するのにかかる時間を測定するだけですか、それともリスト生成も測定に含まれますか?

4

2 に答える 2

3

ステートメント内のすべての実行時間 (最初の arg ) を測定するため、A0 への呼び出しの測定のみが必要な場合は、リストの作成によって結果が歪められます。

セットアップでリストを作成してみてください:

timeit.timeit("A0(aList)", setup="from HW2 import A0; aList = [randint(1,256) * (-1) ** randint(1,2) for j in range("+str(n)+")] ", number=1000000)

リストはタイマーの開始時に一度だけ作成され、タイミングには含まれません。

于 2012-10-13T05:41:01.180 に答える
0

リストの生成時刻が含まれます (timeit を呼び出すときの引用符の間にあるものは何でも)。

于 2012-10-13T05:41:45.400 に答える