【小白从小学Python、C、Java】

【Python-计算机等级考试二级】

Python中产生“每次相同(不同)”的随机数
random.seed([x])方法

[快速理解]
random.seed([x])方法:
x相同,则每次产生相同的随机数
不写x,则每次产生不同的随机数
例如:
import random
random.seed(0);print(random.random())
# 结果是:0.8444218515250481
random.seed(0);print(random.random())
# 结果是:0.8444218515250481
random.seed(1);print(random.random())
# 结果是:0.13436424411240122
random.seed(1);print(random.random())
# 结果是:0.13436424411240122
print(random.random())
# 结果是:0.8474337369372327
print(random.random())
# 结果是:0.763774618976614

[选择题] 
第一步:已知运行了如下代码的输出结果是"民族脊梁团结奋斗":
import random
myList = ["不忘初心", "团结奋斗", "民族脊梁"]
random.seed(0)
print(myList[random.randint(1,2)],end="")
random.seed(1)
print(myList[random.randint(1,2)])
第二步:在运行上述代码之后,紧接着运行以下代码,以下代码的输出结果是?
random.seed(1)
print(myList[random.randint(1,2)],end="")
random.seed(0)
print(myList[random.randint(1,2)])
A 民族脊梁民族脊梁
B 民族脊梁团结奋斗
C 团结奋斗民族脊梁
D 团结奋斗团结奋斗

欢迎大家转发,一起传播知识和正能量,帮助到更多人。期待大家提出宝贵改进建议,互相交流,收获更大。辛苦大家转发时注明出处(也是咱们公益编程交流群的入口网址),刘经纬老师共享知识相关文件下载地址为:http://liujingwei.cn

[问题解析] 
这道题考查了用随机数种子产生固定的随机数。
1.seed()是random库中的一个方法,在seed()方法中写入参数x可以设置一个随机数种子,比如:random.seed(0)。当x相同时,每次生成一样的随机数。当x不同或者没写x时,每次不一定生成一样的随机数。
举例如下:
import random
random.seed(0);print(random.random())
# 结果是:0.8444218515250481
random.seed(0);print(random.random())
# 结果是:0.8444218515250481
random.seed(1);print(random.random())
# 结果是:0.13436424411240122
random.seed(1);print(random.random())
# 结果是:0.13436424411240122
print(random.random())
# 结果是:0.8474337369372327
print(random.random())
# 结果是:0.763774618976614

2.题目解析:
2.1第一步中random.seed(0)设置随机数种子后,random.randint(1,2)生成了[1,2]范围内的随机整数。由题干可知,这个随机整数是2,所以输出了myList列表中索引是2的元素"民族脊梁"。同理可知random.seed(1)设置随机数种子后,random.randint(1,2)生成了[1,2]范围内的随机整数1。所以第一步输出了"民族脊梁团结奋斗"。
2.2根据第一步的运行结果,seed(0)种子对应了随机整数2,seed(1)种子对应了随机整数1,因为一个随机数种子可以用来生成相同的随机数,所以第二步的输出结果是"团结奋斗民族脊梁"。

[答案与运行结果]
正确答案是:C

 [温馨期待] 
期待大家提出宝贵建议,互相交流,收获更大

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐