为了账号安全,请及时绑定邮箱和手机立即绑定

为什么相同解决方案的逐位算法的运行时间不同

为什么相同解决方案的逐位算法的运行时间不同

撒科打诨 2021-08-24 19:08:20
只是出于好奇,我一个简单的数字一个数字的算法来求相同值的平方根 20 次(叹息我知道...)我对所有 20 次运行都得到了相同的结果,但所有执行的运行时间不同。这是预期的观察结果还是我对计时器的编码很差?def tester(orange):       import timeit    x = orange    step = 1    guess = 0    epsilon = 0.0000000001    start = timeit.default_timer()    while guess ** 2 < x:        guess += step        if guess ** 2 > x:            guess -= step            if step > epsilon:                step = step / 10            else:                break    print("The square root of", x, "is", guess)    stop = timeit.default_timer()    print('Time: ', stop - start) number = int(input("Enter the number of times that you want to run this test: "))answer = float(input("Enter a number to find the square root for: "))while number > 0:    tester(answer)    number -= 1
查看完整描述

1 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

timeit.default_timer()测量挂钟时间而不是 CPU 时间。因此,在您的计算机上运行的其他进程(包括后台进程)会影响其时间。如果您运行代码大约 100 次并打开 chrome 并在运行时对其进行处理,您可以看到这一点。您会看到时间略有增加,因为 chrome 使用了您 CPU 时间的一小部分。

要更准确地估计您的代码,请使用timeit.timeit.


查看完整回答
反对 回复 2021-08-24
  • 1 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信