P8 改进我们的小游戏(下)
在“P7”中我们已经完成了前两步的改写,现在进行第三步:3、每次运行程序,答案应该是随机的
1、如何搜索找到库?
在IDIE右上角找到【Help】,点击【Python Docs F1】,点击弹出页面左上【索引】,搜索“random”,点击下方【random(module)】,双击,就是对random模块的帮助文档了。
2、如何用random?(生成伪随机数)
①导入:
>>> import random
②在random模块,有randint函数,
导入形式为random . randint(a , b),
意义为随机获取一个a~b内的一个整数:
>>> random.randint(1,10)
9
>>> random.randint(1,10)
4
>>> random.randint(1,10)
8
于是改进到图1

所示。
3、如何重现random伪随机数?
想要实现对伪随机数而攻击,就要拿到它的“种子”。
一般情况下,random会使用系统时间来作为随机数种子。
我们就可以使用“getstate函数”来获取随机数种子加工之后随机数生成器的内部状态。
如图2

,我们用x命名getstate,然后生成随机数,如图3

。
那我们如何攻击伪随机数呢?
调用“setstate函数”重新设置随机数生成器的内部状态,再生成一次随机数,发现这和刚才生成的随机数一样!!如图4
