在random.py的源代码中,有以下常量定义:
BPF = 53 # Number of bits in a float
RECIP_BPF = 2**-BPF
我不是数学专业的学生,但是通过在其上放1来反转BPF难道不是更容易理解吗?
还是在编程中比乘法更方便的事?
没关系。
为了清理我的问题,我发现了这一点:
“在许多机器上,尤其是那些没有硬件支持除法的机器,除法运算比乘法运算要慢,因此这种方法可以大大提高速度。第一步相对较慢,但只需要执行一次。”
http://en.wikipedia.org/wiki/Multiplicative_inverse
最佳答案
可重复性是主观的。就是说,我个人认为2**-BPF
比1.0/2**BPF
更容易阅读(2**BFP
带有或不带有括号)。
至于性能差异,我怀疑它们是否相关,因为在导入模块时,该表达式仅计算一次。
关于python - 计算倒数:n **(-1)或(1/n)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7554853/