我正在尝试使用 Python 的 time 模块比较两种不同算法的运行时间,以确定数字是否为素数,例如:
test = primesComparisonTXT()
start = time.clock()
print 'Fermat Method'
for prime in test:
print isFermatProbablePrime(prime, 5)
total = time.clock() - start
print total
primesComparisonTXT() 是一个函数,它返回 (1, 1000000) 中已确认的素数列表。
isFermatProbablePrime() 是一个函数,它接受 1. 一个可疑素数 2. 一个参数,该参数指示应该使用费马的素数测试对可疑素数进行多少次测试。该函数根据嫌疑人是否是可能的素数返回 True 或 False。(http://en.wikipedia.org/wiki/Fermat_primality_test)
该算法正确输出该列表中的每个素数确实是可能的素数,但我得到的时间结果大不相同。4.57107920129 打印为“总计”,但 Sublime Text 声明构建为“[在 15.1 秒内完成]”。Sublime 的计时更准确。这种差异有什么特别的原因吗?也许应该使用更好的计时方法(timeit)?