我开始学习python,我尝试通过传递负数和正数来生成随机值。假设-1
,1
。
我应该如何在python中做到这一点?
random.uniform(a, b)
>>> 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()
如果您想要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
。
[大多数语言都有一个函数,该函数将返回范围为[0,1]的随机数,然后您可以操纵该函数以适应所需的范围。在python中,函数为not always clear。因此,对于您的[-1,1]范围,您可以执行以下操作:
random.random
通过将数字加倍得到范围[0,2],并从中减去一个,得到[-1,1]。
您也可以做这样的事情
import random
random_number = random.random() * 2 - 1
我发现这可用于列表理解:
import random
random.choice([-1, 1])
或
print([x for x in [random.randint(1, 11) * -1]])
示例:如果要从给定间隔中随机选择一个[[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]