python笔记—random.seed()应用
- random.seed() 应用
- 功能:生成相同的随机数。
- 注意:生成相同随机数前,都必须运行random.seed(x) ,即指定相同的随机种子
- python案例
"""
random.seed() 应用
功能:生成相同的随机数。
"""
import random
#人工指定随机种子
def dataBySeed(seed,num,M):
random.seed(seed)
randdata=[]
for i in range(num):
randdata.append(random.randint(0,M)) #生成0~M之间随机数,包含0和M
return randdata
#以系统时间做为种子
def dataBySys(num,M):
randdata=[]
for i in range(num):
randdata.append(random.randint(0,M)) #生成0~M之间随机数,包含0和M
return randdata
if __name__=='__main__':
seed=3 #随机种子,限定以该种子生成随机数序列。种子相同,则生成的随机数序列相同
num=6 #每次生成多少个随机数
M=4 #随机数取值范围
N=10 #生成10批序列
seedData=[] #指定种子,生成序列
sysData=[] #未指定种子(即按系统时间),生成序列
for i in range(N):
seedData.append(dataBySeed(seed,num,M))
for i in range(N):
sysData.append(dataBySys(num,M))
#注意,生成时不能在一个for循环中,否则sysData默认也使用指定的种子,生成相同的序列,例如,如下:
for i in range(N):
seedData.append(dataBySeed(seed,num,M))
sysData.append(dataBySys(num,M))
5、结果
- 指定随机种子
[[1, 2, 1, 3, 3, 0],
[1, 2, 1, 3, 3, 0],
[1, 2, 1, 3, 3, 0],
[1, 2, 1, 3, 3, 0],
[1, 2, 1, 3, 3, 0],
[1, 2, 1, 3, 3, 0],
[1, 2, 1, 3, 3, 0],
[1, 2, 1, 3, 3, 0],
[1, 2, 1, 3, 3, 0],
[1, 2, 1, 3, 3, 0]]
- 未指定随机种子,按系统时间随机生成
sysData
[[0, 4, 1, 1, 4, 2],
[4, 2, 3, 0, 3, 4],
[2, 3, 3, 0, 3, 2],
[1, 0, 4, 2, 3, 4],
[3, 4, 1, 4, 2, 4],
[4, 0, 0, 1, 4, 2],
[3, 1, 2, 1, 1, 2],
[2, 4, 3, 4, 4, 4],
[3, 0, 4, 4, 4, 2],
[3, 1, 4, 2, 1, 0]]