小编Geo*_*rdt的帖子

将大量数字乘以 random() (Python)

问题:生成大型二进制字符串(长度 2000+)。动作要快,因为该generateRandom()函数将在算法中被调用300,000次。

尝试的解决方案:生成 3 或 4 个二进制数并将它们全部附加在一起 ​​500 次。这太慢了。

对 random.random() 进行一次调用并将其乘以一个巨大的数字。转换为二进制一次即可完成。这适用于较小的数字,但由于二进制字符串必须具有一定的长度,因此要转换为二进制的数字必须非常巨大(2 ** len(binString))。

当前代码(适用于较小的数字):

binaryRepresentation = ''

binaryRepresentation += bin(int(random.random() * (2 ** binLength)))[2:].zfill(binLength)
Run Code Online (Sandbox Code Playgroud)

我需要帮助修复的错误:此调用会抛出一个“长整型太大,无法转换为浮点数”和大量数字。有没有办法使整个算法更高效或使这个大数字可以转换为浮点数?

谢谢你!

python optimization largenumber

1
推荐指数
1
解决办法
1540
查看次数

标签 统计

largenumber ×1

optimization ×1

python ×1