python - 为什么 random.uniform(0, float ("inf")) 总是返回 inf?

标签 python python-3.x random

我在 python 中使用 random 模块,发现这段代码总是返回 inf:

import random

print(random.uniform(0, float("inf")))

我想知道为什么以及是否有另一种方法可以做到这一点,这样它就不会总是返回 inf

最佳答案

如果您调查random.uniform来源,就会清楚:

def uniform(self, a, b):
    "Get a random number in the range [a, b) or [a, b] depending on rounding."
    return a + (b-a) * self.random()

任何带有 float('inf') 的算术都会返回 -infinf

在这种情况下:

b-a 其中 binf 计算结果为 infinf * self.random() inf(如果 self.random() 为负,则为 -inf)和 a + inf > 是inf

关于python - 为什么 random.uniform(0, float ("inf")) 总是返回 inf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55076388/

相关文章:

python - 使用 Django-openid-auth

python - 元胞自动机算法似乎不起作用

javascript - 如何根据其值随机返回关联数组名称

java - 我的随机数组给了我相同的答案,而它应该是不同的

c# - 随机数生成器只生成一个随机数

具有可变上限的 Python 双变量正态 CDF

python - 使用经过训练的权重绘制 3d 超平面

Python:如何允许 ‘inner function’更改多个 ‘outer functions’中的非局部变量

python-3.x - Python Pandas 数据透视表按日期排序

python - 遇到 : json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)