• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python中random模块的分析(附实例)

python 搞代码 4年前 (2022-01-09) 20次浏览 已收录 0个评论
本篇文章给大家带来的内容是关于Python中random模块的分析(附实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

random是Python产生伪随机数的模块,随机种子默认为系统时钟。下面分析模块中的方法:

1、random.randint(start,stop)

这是一个产生整数随机数的函数,参数start代表最小值,参数stop代表最大值,两端的数值都可以取到;

函数算法时间复杂度为:O(1)

核心源码:

return self.randrange(a,b+1) #调用randrange函数来处理

实例:

import randomfor i in range(20):    print(random.randint(0,10),end=' ')

结果:

1 1 7 5 10 1 4 1 0 8 7 7 2 10 6 8 6 0 3 1

2、random.randrange(start,stop,step)

也是一个随机整数函数,参数可选

  • 只有一个参数时,默认随机范围是0到该参数,前闭后开;

  • 两个参数时,表示最小值和最大值,前闭后开

  • 三个参数时,表示最小值,最大值和步长,前闭后开

函数算法时间复杂度:O(1)

核心源代码:

return istart+istep*self._randbelow(n) #调用randbelow函数处理

实例:

import randomfor i in range(10):    print(random.randrange(10),end=' ') #产生0到10(不包括10)的随机数print("")for i in range(10):    print(random.randrange(5,10),end=' ') #产生5到10(不包括10)的随机数print("")for i in range(10):    print(random.randrange(5,100,5),end=' ') #产生5到100(不包括100)范围内的5倍整数的随机数

结果:

1 1 2 4 4 3 4 6 1 46 6 5 7 8 9 6 6 6 530 50 20 40 75 85 25 65 80 95

3、random.choice(seq)

一个随机选择函数,seq是一个非空的集合,在集合中随机选择了一个元素输出,元素的类型没有限制。

核心源代码:

i=self._randbelow(len(seq)) #由randbelow函数得到随机地下标return seq[i]

函数算法时间负责度:O(1)

实例:

import randomlist3=["mark","帅",18,[183,138]]for j in range(10): <em>本文来源[email protected]搞@^&代*@码2网</em>   print(random.choice(list3),end=' ')

代码:

mark 帅 [183, 138] 18 mark 18 mark 帅 帅 [183, 138]

4、random.random()

这个函数形成从0.0到1.0之间的任意浮点数,左闭右开,没有参数。

实例:

import randomfor j in range(5):    print(random.random(),end=' ')

运行结果:

0.357486615834809 0.5928029747238529 0.37053940107869987 0.3802224543848519 0.9741990956161711

5、random.send(n=None)

一个可以对随机数生成器进行初始化的函数,n代表随机种子;当n=None时,随机种子为系统时间,当n为其他的数据,如int,str等时,则以提供的数据作为随机种子,此时生成的随机数列固定。

实例:

import randomrandom.seed("mark")for j in range(20):#无论启动多少次程序,输出的序列不变    print(random.randint(0,10),end=' ')

结果:

4 1 10 5 6 2 8 5 5 10 7 2 9 6 2 6 0 5 10 10

6、random.getstate() 和 random.setstate(state):

getstate()函数用来记录随机数生成器的状态,setstate(state)函数用来将生成器恢复到上次记录的状态。

实例:

import randomtuple1=random.getstate()#记录生成器的状态for i in range(20):    print(random.randint(0,10),end=' ')print()random.setstate(tuple1)#传入参数回复之间的状态for i in range(20):    print(random.randint(0,10),end=' ')#两次输出的结果一致

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python中random模块的分析(附实例)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址