在random.py的源代码中,有以下常量定义:

BPF = 53        # Number of bits in a float
RECIP_BPF = 2**-BPF


我不是数学专业的学生,​​但是通过在其上放1来反转BPF难道不是更容易理解吗?

还是在编程中比乘法更方便的事?



没关系。

为了清理我的问题,我发现了这一点:

“在许多机器上,尤其是那些没有硬件支持除法的机器,除法运算比乘法运算要慢,因此这种方法可以大大提高速度。第一步相对较慢,但只需要执行一次。”

http://en.wikipedia.org/wiki/Multiplicative_inverse

最佳答案

可重复性是主观的。就是说,我个人认为2**-BPF1.0/2**BPF更容易阅读(2**BFP带有或不带有括号)。

至于性能差异,我怀疑它们是否相关,因为在导入模块时,该表达式仅计算一次。

关于python - 计算倒数:n **(-1)或(1/n)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7554853/

10-13 05:52