找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 6768|回复: 1

有谁知道 random.setstate和getstate怎么用吗?

1

主题

3

帖子

3

积分

贫民

积分
3
huckrr 发表于 2016-9-22 20:00:03 | 显示全部楼层 |阅读模式
能举个简单的例子吗?
回复

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2016-10-3 20:30:30 | 显示全部楼层
简单来讲, python的random模块生成的随机数并不是真正的随机数, 其内部状态决定了生成的随机数的值.
内部状态可以通过random.getstate()来获取. 每次生成一个随机数之后,内部状态就会改变
random.setstate()可以恢复内部状态, 如果内部状态相同,那么生成的随机数也相同.
试试下面的代码:
内部状态1 = random.getstate()
print(random.random())
random.setstate(内部状态1)
print(random.random())

两次得到的随机数是相同的.
其实,相同内部状态之后的变化是相同的,即可以获得相同的随机数序列.
看下面的例子:
内部状态1 = random.getstate()
print(random.random())
print(random.random())
print(random.random())
random.setstate(内部状态1)
print(random.random())
print(random.random())
print(random.random())

这两个方法的作用和random.seed()有点相似. 不过比seed()更加灵活.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表