python中种子数是什么意思_Python seed函数到底有什么用?

没有看书,凭借记忆来随便答一下。答错了就当开阔思路好了。

random 是怎样实现随机数的?

我凭借记忆来猜测一下random的实现,在指定好随机范围和随机数种子(seed)的情况下,生成的随机数序列应该是一样的。也就是说,你先调用一次random.seed(1),然后调用 10 次random.randint(1, 9)。得到一个数字序列 A。然后你重新设置随机数种子为 1,random.seed(1),然后再调用10次,random.randint(1, 9),又生成一个数字序列 B,不出意外的话,序列A和序列B的结果应该是一样的。

import random

random.seed(1)

print('数字序列A', end=' ')

for i in range(9):

print(random.randint(1, 9), end=' ')

# 重新设置随机数种子 为 1

random.seed(1)

print('数字序列B', end=' ')

for i in range(9):

print(random.randint(1, 9), end=' ')

# 数字序列A 3 2 5 2 8 8 8 7 4 数字序列B 3 2 5 2 8 8 8 7 4

那这样还算生成随机数吗?它在我的电脑上是这个结果, 在你的电脑上可能也是一个确定的结果. 在设置好随机数种子以后,使用 random 工具生成每一个数其实都是已经确定好的。于是,人们通常在产生一次随机数后就重新设置一次随机数种子,这样就能保证生成的随机数不会依照之前的那个确定的数字序列了, 当然它还是一个确定的数字序列. 如果你设置随机数种子为 2, 那它生成随机数时就按照随机数种子为 2 时对应的那个随机数序列来生成随机数. 如果你设置随机数种子为 3, 那它生成随机数时就按照随机数种子为 3 时对应的那个随机数序列来生成随机数. 但是如果你每次生成随机数时都指定随机数种子为 2 或者 3,那么生成的随机数就又冥冥之中被确定了?

因此, 人们常用 time.time() 来当做随机数种子, 来代替前文的随机数种子1 2 3。time.time() 返回一个浮点数, 代表当前的时间, 用法如下:

import time

import random

random.seed(time.time())

print('数字序列A', end=' ')

for i in range(9):

print(random.randint(1, 9), end=' ')

# 重新设置随机数种子

random.seed(time.time())

print('数字序列B', end=' ')

for i in range(9):

print(random.randint(1, 9), end=' ')

这样, 我每次点运行时的时间肯定不一样, 相应的每次设置的随机数种子就不一样, 对应的随机数序列就不一样. 当然每个随机数种子代表的随机数序列还是确定的, 并没有随机. 因此人们把 random 生成的随机数称为 "伪随机数". 这并不是说在大数据量地调用 random 产生随机数的情况下, 它生成指定范围内的随机数序列中每个数字出现的概率不相等, 而是想要描述前文中描述的现象.

### 回答1: random.randint() 是 Python 标准库的一个函数,用于生成指定范围内的随机整数。它接受两个参数,第一个参数是范围内的最小整数,第二个参数是范围内的最大整数,包括这两个整数在内。例如,如果你调用 random.randint(1, 10) ,它会生成一个1到10之间的整数(包括1和10)。 ### 回答2: random.randint()是Pythonrandom模块提供的一个函数,用于生成一个指定范围内的随机整数。该函数接受两个参数,第一个参数是范围内的最小值,第二个参数是范围内的最大值。 函数的调用形式为random.randint(a, b),其a和b分别表示范围的最小值和最大值。函数返回一个整数,该整数的取值范围是从a到b(包括a和b)之间的所有整数。如果a大于b,则函数会报错。 例如,调用random.randint(1, 10)会返回1到10之间的一个随机整数,包括1和10。 random.randint()在编程常用于需要随机生成整数的场景,如游戏的随机数生成、模拟实验、密码生成等。根据需要,我们可以根据需要设置范围,从而生成不同范围的随机整数。 总之,random.randint()函数Python用于生成指定范围内随机整数的一个工具函数。 ### 回答3: random.randint()是Python的一个方法,用于产生指定范围内的随机整数。这个方法需要接收两个参数,分别是指定范围的下界和上界。下界和上界可以是任意整数,下界可以小于上界。方法会返回一个包含在指定范围内的一个随机整数。 例如,调用random.randint(1, 10)这个方法会生成一个1到10之间(包括1和10)的随机整数。调用random.randint(10, 20)则会生成一个10到20之间的随机整数(包括10和20)。 这个方法在编写需要使用随机数的程序时非常有用。比如,如果我们需要生成一个随机的抽奖号码或者从一个给定的列表随机选择一个元素,就可以通过random.randint()来实现。 需要注意的是,random.randint()是一个伪随机数生成器,它的随机性基于一个种子(seed)。如果不给定种子,每次调用程序时都会使用系统时间作为种子,以保证每次生成的随机数序列不同。如果需要得到固定的随机数序列,可以给定相同的种子,这样每次程序运行时都会生成相同的随机数序列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值