gpt4 book ai didi

python - 计算倒数 : n**(-1) or (1/n)?

转载 作者:太空宇宙 更新时间:2023-11-04 09:17:20 24 4
gpt4 key购买 nike

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

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

我不是数学专业的,但是通过在其上放置 1 来反转 BPF 不是更具可读性吗?

或者在编程中有什么乘法比除法更方便吗?


没关系。

为了解决我的问题,我发现了这个:

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

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

最佳答案

RECIP_BPF,尽管它的名字是 1/BPF。它是 1/(2^BPF)。我不能代表所有人,但我发现 2**-BPF1.0/2**BPF 更容易阅读。

请注意,乘法和除法的速度在这里并不重要;特别是,由于这些是常量,编译器或解释器只需要对它们求值一次(编译器甚至可以在编译时执行)。此外,由于它们是 2 的精确幂,因此可以直接通过 float 使用二进制编码这一事实来生成结果,而无需进行乘法或除法运算。

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com