关于Python中的随机数生成步骤和随机数质量
发布网友
发布时间:2022-04-26 00:49
我来回答
共2个回答
热心网友
时间:2022-04-06 01:45
Python生成随机数和随机数质量的方法,random.random()用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成随机数:
print random.uniform(10, 20)
print random.uniform(20, 10)
#----
#18.7356606526
#12.5798298022
random.randint
用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,Python生成随机数
print random.randint(12, 20) #生成的随机数n: 12 <= n <= 20
print random.randint(20, 20) #结果永远是20
#print random.randint(20, 10) #该语句是错误的。
random.randrange方法从指定范围内,按指定基数递增的集合中 ,下面对python生成随机数的应用程序的部分介绍:
1.随机整数:
>>> import random
>>> random.randint(0,99)
21
2.随机选取0到100间的偶数:
>>> import random
>>> random.randrange(0, 101, 2)
42
3.随机浮点数:
>>> import random
>>> random.random()
0.85415370477785668
>>> random.uniform(1, 10)
5.4221167969800881
4.随机字符:
>>> import random
>>> random.choice('abcdefg&#%^*f')
'd'
5.多个字符中选取特定数量的字符:
>>> import random
random.sample('abcdefghij',3)
['a', 'd', 'b']
6.多个字符中选取特定数量的字符组成新字符串:
>>> import random
>>> import string
>>> string.join(random.sample(['a','b','c','d','e','f','g','h','i','j'], 3)).r
eplace(" ","")
'fih'
热心网友
时间:2022-04-06 03:03
>>> random.random() # Random float x, 0.0 <= x < 1.0
0.37444887175646646
>>> random.uniform(1, 10) # Random float x, 1.0 <= x < 10.0
1.1800146073117523
>>> random.randint(1, 10) # Integer from 1 to 10, endpoints included
7
>>> random.randrange(0, 101, 2) # Even integer from 0 to 100
26
>>> random.choice('abcdefghij') # Choose a random element
'c'
>>> items = [1, 2, 3, 4, 5, 6, 7]
>>> random.shuffle(items)
>>> items
[7, 3, 2, 5, 6, 4, 1]
>>> random.sample([1, 2, 3, 4, 5], 3) # Choose 3 elements
[4, 1, 5]
测试随机数质量一般是用以下几种测试:
Birthday spacings
Overlapping permutations
Ranks of matrices
Monkey tests
Count the 1s
Parking lot test
Minimum distance test
Random spheres test
The squeeze test
Overlapping sums test
Runs test
The craps test
追问谢谢。其实我想知道,系统是如何从读取系统时间到生成随机数的过程,而不是怎么用random函数。唉
追答具体的方法在Lib/random.py和Moles/_randommole.c里面。另外,python的seed不一定是系统时间,在linux会优先 /dev/urandom