关于Python中的随机数生成步骤和随机数质量

求大神讲解写Python2.7里面random随机数生成模块中随机数生成的详细步骤,并求评价该随机数质量如何。答辩要用,急... 求大神讲解写Python2.7里面random随机数生成模块中随机数生成的详细步骤,并求评价该随机数质量如何。答辩要用,急 展开
 我来答
曹晓山11
推荐于2016-02-17 · 知道合伙人互联网行家
曹晓山11
知道合伙人互联网行家
采纳数:3033 获赞数:52065
毕业南阳理工学院计算机科学与技术专业,本科学位。互联网行业从业3年工作经验,读过编程类相关书籍多本。

向TA提问 私信TA
展开全部

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'
kaisa1028
推荐于2018-02-27 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5429
采纳率:28%
帮助的人:2539万
展开全部
>>> 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和Modules/_randommodule.c里面。另外,python的seed不一定是系统时间,在linux会优先 /dev/urandom
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式