如何在python中生成负随机值

问题描述 投票:11回答:7

我开始学习python,我尝试通过传递负数和正数来生成随机值。假设-11

我应该如何在python中做到这一点?

python random
7个回答
27
投票

使用random.uniform(a, b)

random.uniform(a, b)

5
投票
>>> import random
>>> random.uniform(-1, 1)
0.4779007751444888
>>> random.uniform(-1, 1)
-0.10028581710574902

编辑:@ San4ez的import random def r(minimum, maximum): return minimum + (maximum - minimum) * random.random() print r(-1, 1) 是正确的方法。无需重新发明轮子……

无论如何,random.uniform(-1, 1)编码为:

random.uniform()

3
投票

如果您想要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()

integer in a specified range

它使用与print random.randrange(-1, 2) 相同的约定,因此不包括上限。

[range如果需要浮点值,则执行类似的操作,但是如果不包括上限,则为random.uniform


1
投票

[大多数语言都有一个函数,该函数将返回范围为[0,1]的随机数,然后您可以操纵该函数以适应所需的范围。在python中,函数为not always clear。因此,对于您的[-1,1]范围,您可以执行以下操作:

random.random

通过将数字加倍得到范围[0,2],并从中减去一个,得到[-1,1]。


1
投票

您也可以做这样的事情

import random
random_number = random.random() * 2 - 1

0
投票

我发现这可用于列表理解:

import random
random.choice([-1, 1])

print([x for x in [random.randint(1, 11) * -1]])

0
投票

如果要从给定间隔中随机选择一个[[whole数字

示例:

#int range is n1 to n2 def make_negative(n1, n2): print([x for x in [random.randint(n1, n2) * -1]]) make_negative(1,10)

间隔[-1,1]

© www.soinside.com 2019 - 2024. All rights reserved.