鱼C论坛

 找回密码
 立即注册
查看: 2377|回复: 6

[已解决]新手提问

[复制链接]
发表于 2021-4-25 00:38:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

老哥们好,今天听了小甲鱼的课程
说是random.randint()是利用系统时间作为种子来生成伪随机数

然后我就有一个疑问

假如我在A时间 利用x=random.getstate() 获取了A时间的状态
然后在B时间   利用random.randint()生成了伪随机数
然后在C时间   利用random.setstate(x)恢复到A时间的状态再次生成伪随机数


那么我就有一个问题,由于种子和系统时间挂钩,我在B时间得到的伪随机数应该和A时间是不同的,但是实际输出确是相同的,这是为什么呢
最佳答案
2021-4-26 21:32:56
tz编程学习 发表于 2021-4-26 20:20
老哥 也就是说 种子是在某个时刻生成好的 不会随着时间改变了
我每次调用random.randint 就是用这个种子 ...

是的。文档里也有说到。你自己试验一下,也可以看到,“随机重现了”。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-4-25 00:39:32 | 显示全部楼层
我是新手  老哥们别笑话我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-25 07:44:27 From FishC Mobile | 显示全部楼层
本帖最后由 wp231957 于 2021-4-25 07:45 编辑

关于随机数种子的问题,是个狠高大上的事,既便把论文给你,也未必能看懂,所以了,我们会用就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-25 12:43:55 | 显示全部楼层
不指定a时产生种子和系统时间挂钩,不是说产生随机数和系统时间挂钩。
详情help(random.seed)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-25 20:56:55 | 显示全部楼层
应该是 getstate() 和 setstate() 就是为了可以 重现随机 吧。
——A时刻产生的seed 内包含N个 伪随机的随机数(随机序列),每次random.randint()根据这个seed生出一个随机数。
getstate()可以保存这样一个seed的状态(所有随机序列),再通过setstate()恢复到随机开始时,以重现这些随机数(伪随机)。

ps: 数学家们好像说 这些随机数不是真随机,也只是“伪随机”。
我是这样理解的,即使你是根据时间数来生成,但我只要知道你生成的那个时间点,
且知道你所用的随机公式,那我也可以计算出同样的随机序列。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-26 20:20:08 | 显示全部楼层
阿奇_o 发表于 2021-4-25 20:56
应该是 getstate() 和 setstate() 就是为了可以 重现随机 吧。
——A时刻产生的seed 内包含N个 伪随机的随 ...

老哥 也就是说 种子是在某个时刻生成好的 不会随着时间改变了
我每次调用random.randint 就是用这个种子按顺序生成

setstate 就是回到这个种子刚开始的状态 重新按顺序生成
是这个意思吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-26 21:32:56 | 显示全部楼层    本楼为最佳答案   
tz编程学习 发表于 2021-4-26 20:20
老哥 也就是说 种子是在某个时刻生成好的 不会随着时间改变了
我每次调用random.randint 就是用这个种子 ...

是的。文档里也有说到。你自己试验一下,也可以看到,“随机重现了”。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 00:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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