Python random.seed() 方法



Python random.seed() 方法用于生成随机数。它是在伪随机数生成器的帮助下通过对给定值执行一些操作来完成的。random 模块使用 seed 值作为基数在 Python 中创建一个随机数。

伪随机数生成器在种子设定期间获取其第一个“上一个”值。对于特定的随机数生成器,每个种子值将对应于生成的一系列值。换句话说,如果你两次使用同一个种子,你将两次获得相同的数字集。

注意 − 这个函数不能直接访问,所以我们需要导入 random 模块,然后我们需要使用 random 静态对象调用这个函数。

语法

以下是 Python random.seed() 方法的语法 -


 random.seed(x, version)

参数

  • x(可选)− 这是下一个随机数的种子。如果省略,则生成下一个随机数需要系统时间。如果 x 为 None,则默认情况下使用当前系统时间。
  • version− 这是一个整数值。它描述了如何将参数 x 转换为整数值。它的默认值为 2。

返回值

此方法不返回任何值。它只修复了随机数的生成。

示例 1

以下示例显示了 Python random.seed() 方法的用法。在这里,我们还使用了 random 模块的另一种名为 random() 的方法。它生成位于指定范围 '10' 之间的随机数。


import random
random.seed( 10 )
print ("Random number with seed 10 : ", random.random())
# It will generate same random number
random.seed(10)
print ("Random number with seed 10 : ", random.random())
# It will generate same random number
random.seed(10)
print ("Random number with seed 10 : ", random.random())

当我们运行上述程序时,它会产生以下结果——

Random number with seed 10 : 0.57140259469
Random number with seed 10 : 0.57140259469
Random number with seed 10 : 0.57140259469

示例 2

如果我们使用相同的 see 两次,我们将得到相同的随机数集两次。

在下面给出的示例中,为 random.seed() 方法提供了相同的种子值 '98'。因此,获得了相同的随机数。这是因为为随机数生成器指定了第一个前值 (seed)。因此,在每次运行中,生成器将生成相同的数字。


# import the random module
import random
# set the seed with the value 98
x = random.seed(98)
# generate the random number between 1-100
print("The random number generated is:", random.random()*100)
# again set the seed with the value of 98
x = random.seed(98)
# generate the random number between 1-100
print("The random number generated is:", random.random()*100)

在执行上述代码时,我们得到以下输出 -

The random number generated is: 35.639820676272215
The random number generated is: 35.639820676272215

示例 3

在这里,我们在调用 random 模块之前传递不同的种子值。因此,我们得到不同的随机数。


# import the random module
import random
# set the seed with the value 98
x = random.seed(30)
# generate the random number between 1-100
print("The random number generated is:", random.random()*100)
# again set the seed with the value of 60
x = random.seed(60)
# generate the random number
print("The random number generated is:", random.random())

以下是上述代码的输出 -

The random number generated is: 53.90815646058106
The random number generated is: 0.3078067547337774

示例 4

以下是使用 for 循环的 seed() 方法的另一个示例。在这里,我们看到重复的输出 4 次。


import random
for i in range(4):
	 	# random number with seed 9
	 	random.seed(9)
	 	for i in range(3):
	 	 	 print('The random number with seed 9 is:',random.random())
	 	print('The random number generated is:')

上述代码的输出如下 -

The random number with seed 9 is: 0.46300735781502145
The random number with seed 9 is: 0.37331193139504204
The random number with seed 9 is: 0.13853941251445523
The random number generated is:
The random number with seed 9 is: 0.46300735781502145
The random number with seed 9 is: 0.37331193139504204
The random number with seed 9 is: 0.13853941251445523
The random number generated is:
The random number with seed 9 is: 0.46300735781502145
The random number with seed 9 is: 0.37331193139504204
The random number with seed 9 is: 0.13853941251445523
The random number generated is:
The random number with seed 9 is: 0.46300735781502145
The random number with seed 9 is: 0.37331193139504204
The random number with seed 9 is: 0.13853941251445523
The random number generated is: