Python中的随机数生成器

时间:2020-02-23 14:43:43  来源:igfitidea点击:

我们可以使用Python随机模块生成随机数。
我们可以使用该模块生成随机整数,浮点数或者随机数序列。

1.用Python生成随机整数

Python随机模块randint()函数可以在给定的端点之间生成一个随机数。

>>> from random import randint
>>> 
>>> randint(1, 10)
6
>>> randint(1, 10)
8
>>> randint(1, 10)
2

请注意,randint()在生成随机整数时包括两个端点。
如果您不希望包含第二个端点,请使用randrange()函数。

>>> from random import randrange
>>> 
>>> randrange(1, 10)
8
>>>

2.在Python中生成随机浮点数

随机模块具有range()函数,该函数生成介于0(含)和1(不含)之间的随机浮点数。

>>> import random
>>> 
>>> random.random()
0.5453202789895193
>>> random.random()
0.9264563336754832
>>>

没有单独的方法可以在给定范围之间生成浮点数。
为此,只需将其乘以所需的范围即可。

这是一个简单的程序,用于生成0到100之间的随机浮点数。

>>> random.random() * 100
28.226855764270553
>>> random.random() * 100
41.844280268733115
>>>

3.从序列中选择一个随机数

我们还可以使用random模块使用choice()方法从序列中选择一个随机数。

>>> from random import choice
>>> nums = [1,3,5,7,9,11]
>>> choice(nums)
5
>>> choice(nums)
7
>>> choice(nums)
3
>>> choice(nums)
3
>>>

4.快速随机种子

当我们调用随机模块函数时,它将在内部初始化Random类,并使用当前系统时间生成种子值。
然后,该种子值用于生成随机数。

我们还可以设置随机种子,在这种情况下,每次都会生成相同的随机数序列。

让我们通过一个简单的例子来了解这种行为。

>>> import random
>>> 
>>> random.seed(1000)
>>> 
>>> random.random()
0.7773566427005639
>>> random.random()
0.6698255595592497
>>> random.random()
0.09913960392481702
>>> 
>>> random.seed(1000)  # resetting the seed again to 1000
>>> 
>>> random.random()
0.7773566427005639
>>> random.random()
0.6698255595592497
>>> random.random()
0.09913960392481702
>>>

请注意,每次生成的随机数都遵循相同的顺序。
除非您想要这样,否则请避免设置随机种子值。