python - Python 中的整数与浮点乘法

标签 python performance multiplication calculation

我最近编写了一个简短的 Python 程序来计算数字的阶乘作为测试,看看整数乘法比浮点乘法快多少。想象一下,当我发现浮点乘法更快时,我有多惊讶!我对此感到困惑,希望有人能启发我。我使用完全相同的函数进行阶乘计算,只是将 float 与整数传递给它。这是代码:

import time

def fact(n):
    n_fact = n
    while n > 2:
        n_fact *= n - 1
        n -= 1
    print(n_fact)
    return n_fact

n = int(input("Enter an integer for factorial calculation: "))
n_float = float(n)

# integer factorial
start = time.time()
fact(n)
end = time.time()
print("Time for integer factorial calculation: ", end - start, "seconds.")

# float factorial
start = time.time()
fact(n_float)
end = time.time()
print("Time for float factorial calculation: ", end - start, "seconds.")

当我运行这个程序时,结果会有所不同,但总的来说,大多数时候整数计算的速度更快,这与我认为我知道的一切相反(请记住,我不是专家)。我的计时计算方法有问题吗?我是否需要运行计算数千次才能更准确地测量时间?任何见解将不胜感激。

最佳答案

感谢您的评论以及有关使用 timeit 的提示。当我使用 timeit 重新运行代码时,我发现结果与 Seb 提到的类似。也就是说,对于较小的值(对我来说,最多大约 15),整数计算速度更快,然后浮点计算速度更快(对于较大的值,速度明显更快)。这正是我所期望的!

关于python - Python 中的整数与浮点乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60338457/

相关文章:

python - 具有不同接口(interface)的派生类

python - 比较 XML 片段?

python - 数据框列之间所有可能组合的计数

javascript - 这会导致性能泄漏还是其他原因?

python - 在 Python 中从 csv 中读取原始行和字典

java - 最佳实践——异常处理

php - 查询MySQL最新评论+评论总数的最有效方式

c# - 如何在 .NET 中不使用乘法运算符实现乘法

c++ - 如何在 x86 程序集中移动两个 float 相乘的结果?

Python长乘法