1.Pythonseed() 函数
seed()方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。
seed( )是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。如:
importrandom
random.seed ( [x] )
其中的参数:x 是 改变随机数生成器的种子seed。如果不了解其原理,不必特别去设定seed,Python会自动选择seed。
该函数没有返回值。
例子:
importrandom
random.seed(10)print "Random number with seed 10 :", random.random()#生成同一个随机数
random.seed( 10)print "Random number with seed 10 :", random.random()#生成同一个随机数
random.seed( 10)print "Random number with seed 10 :", random.random()
运行结果:
Random number with seed 10 : 0.57140259469Random number with seed10 : 0.57140259469Random number with seed10 : 0.57140259469
2. 使用 random.randint(a, b) 生成随机整数:生成一个 a≤n≤b 的随机整数,即包含a和b。
print random.randint(13, 40) #生成的随机数n: 13 ≤ n ≤ 20
print random.randint(10, 10) #结果永远是10#print random.randint(30, 20) #该语句是错误的。下限必须小于上限
通过查看该函数的python源码可以了解到其具体的取值范围:
defrandint(self, a, b):"""Return random integer in range [a, b], including both end points."""
return self.randrange(a, b+1)
因此其取值范围是包括上下限的。
3. 例子1:
利用 Python 随机产生1000个1~10000之间的整数,找出其中最大的5个三位数并输出。
要求: 1)利用列表存储产生的所有数。 2)将最大的5个三位数存储在一个元组中。
from random importrandint
l=[randint(1,10000) for i in range(1000)]
l_sorted=sorted([i for i in l if i<1000],reverse=True)
max5=(l_sorted[0],l_sorted[1],l_sorted[2],l_sorted[3],l_sorted[4])print(max5)
运行结果:
4. 例子2:返回一组随机数并归一化
#返回一个list,该list包含k个整数随机数,s为随机数的种子
defrandom_init_KDvector(k, s):
list=[]#设置随机种子
random.seed(s)for i inrange(0, k):
tmp= random.randint(1, 10000)
list.append(tmp)returnlistdef normalize(list,sum=0):if sum==0:for i inrange(0,len(list)):
sum+=list[i]
num=0for i in range(0,len(list)-1):
list[i]=list[i]*1.0/sum
num+=list[i]
list[len(list)-1]=1-numreturnlist
U=dict()
ls=random_init_KDvector(5,3)print("ls为:",ls)
U[0]=normalize(ls)print("U[0]为:",U[0])#ls为: [3899, 9710, 8917, 2137, 6062]#U[0]为: [0.12689991863303499, 0.3160292921074044, 0.29021969080553295, 0.06955248169243287, 0.1972986167615948]
如果觉得《python随机密码生成以整数17为随机数种子_Python 随机数 random》对你有帮助,请点赞、收藏,并留下你的观点哦!