计算机除法和求幂有什么区别?

2024-04-18 18:08:54 发布

您现在位置:Python中文网/ 问答频道 /正文

在尝试解决优化问题时,我不断得到:

 RuntimeWarning: divide by zero encountered in divide

尽管从分析角度来说,写1/x和x^(-1)是一回事,但是通过替换每个除法来重新编写函数,如图所示解决了我的问题。你知道吗

我很想知道是什么让计算机计算除法或指数有什么不同。你知道吗

编辑:

我正在解决一个涉及纳米尺度的物理问题。我得到的完全错误是:

    RuntimeWarning: divide by zero encountered in divide
    term = alpha / w

其中alpha是一个常数,w>;0是一个长度。我期望的w值是1e-9或更小,alpha是0.1。你知道吗

尽管如此,实际问题还是解决了。实际上,我很惊讶代码中如此简单的更改解决了所有问题,从而解决了问题。你知道吗

编辑2:

我通过写作解决了这个问题:

term = alpha * w**(-1)

我知道**在Python中等于指数运算。你知道吗


Tags: 函数inalpha编辑by计算机物理指数
2条回答

这就是你的问题:

>>> alpha = 1
>>> w = 2
>>> term = alpha/w
>>> term
0


>>> term = alpha * w **(-1)
>>> term
0.5
>>>
>>> term = float(alpha)/w
>>> term
0.5

在第一个示例中,您正在执行整数除法,该除法舍入为0。在第二个示例中,通过执行指数运算隐式地转换为float。第三个示例显示,通过将任一值转换为浮点值,可以使用除法得到正确的结果

在python中,^operator是XOR操作。 使用**运算符进行幂运算,这将为0**-1提供零除法误差

相关问题 更多 >