Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 布尔运算与算术运算的计算代价比较_Python_Computer Science - Fatal编程技术网

Python 布尔运算与算术运算的计算代价比较

Python 布尔运算与算术运算的计算代价比较,python,computer-science,Python,Computer Science,我有一个关于运算成本的一般性问题。最基本的布尔运算比最基本的算术运算在时间上更便宜还是更昂贵。在有边缘情况的情况下,考虑尝试不同输入的随机情况。 更新 为了稍微细化一下这个问题,我想比较一下加法和布尔等于运算的时间复杂度。以下是时间复杂性资源: 从我的理解来看,布尔等于是位运算和运算的乘法,所以这通常会降低效率 我在本地运行了这段python代码,证实了这一点: from time import time a = time() for i in range(1000000): 26

我有一个关于运算成本的一般性问题。最基本的布尔运算比最基本的算术运算在时间上更便宜还是更昂贵。在有边缘情况的情况下,考虑尝试不同输入的随机情况。

更新 为了稍微细化一下这个问题,我想比较一下加法和布尔等于运算的时间复杂度。以下是时间复杂性资源:

从我的理解来看,布尔等于是位运算和运算的乘法,所以这通常会降低效率

我在本地运行了这段python代码,证实了这一点:

from time import time
a = time()

for i in range(1000000):
    26 == 25
print(time() - a)
## 0.040122032165527344
a = time()

for i in range(1000000):
    26 + 25
print(time() - a)
## 0.031081438064575195

更新稍微更改上面的代码以使布尔等于更有效

实际上,比较通常在硬件中实现,因此成本与算术运算相同


实际上,比较通常在硬件中实现,因此成本与算术运算相同


您必须在特定的机器上进行测试才能确定。除非您正在编写关键的内核代码,否则差异可能非常小,您永远不会注意到它。如果您试图梳理CPU级别的差异,那么试图通过Python解释器达到这一点就是试图使用标尺测量微米。它并不是一种具有你想要的精度的仪器,而你试图将事情“放大”到你想要测量的范围所得到的噪音(来自垃圾收集、操作系统中断等)将压倒信号。你必须在特定的机器上进行测试才能确定。除非您正在编写关键的内核代码,否则差异可能非常小,您永远不会注意到它。如果您试图梳理CPU级别的差异,那么试图通过Python解释器达到这一点就是试图使用标尺测量微米。它并不是一种具有你想要的精度的仪器,你试图将事情“放大”到你想要测量的范围的噪音(来自垃圾收集、操作系统中断等)将压倒信号。