【发布时间】:2016-12-28 19:34:10
【问题描述】:
我要测量我的函数代表 C 需要多长时间:
C in range (0, 100, 1)
使用给定列表中的整数。 有我的代码:
import itertools
import time
def amount(c):
a = [1, 2, 5, 10, 20, 50]
dp = [[0 for _ in range(len(a))] for __ in range(c + 1)]
dp[0][0] = 1
for i in range(c):
for j in range(len(a)):
for k in range(j, len(a)):
if i + a[k] <= c:
dp[i + a[k]][k] += dp[i][j]
return sum(dp[c])
我决定创建一个函数来测量我的函数的一次调用持续多长时间:
def count_once(c):
start = time.perf_counter()
amount(c)
return time.perf_counter() - start
这很容易。现在我想从 0 到 100 对每个 C 进行 10 次测量,然后计算每个 C 的这些测量的平均值。
所以输出应该包含 100 个数字(每个数字都是平均值)。
我从这个开始:
for i in range(0, 101, 1):
count_once(i)
print(count_once(i))
但我不知道如何使用该公式计算每个 C 的平均 10 次测量值。
【问题讨论】:
-
sum([count_once(I) for I in range(100)])/100.0?
-
@kabanus 但我需要 100 个不同的平均值。我想为每个 C 测量 10 次时间,然后计算每个 C 的平均值。
-
所以你的意思是你的意思是你想为 10 个不同的参数平均 count_once 超过 10 次?说 C=0...9?
-
@kabanus 我想对 C = 1 使用 count_once 10 次。然后计算平均值。然后对 C = 2 使用 count_once 10 次。再一次 - 平均。依此类推,直到 C = 100。最后,我希望每个 C 有 100 个平均值。
标签: python function time measurement