首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python -生成相同的随机数

Python -生成相同的随机数
EN

Stack Overflow用户
提问于 2017-03-09 15:34:12
回答 3查看 16.8K关注 0票数 0
代码语言:javascript
运行
复制
def main():
    x = [randint(1,100) for i in range(1,100)]
    return x

这将返回100个随机数btw 1和100。每次我调用这个函数,它都会返回一个不同的数字序列。我想要的是,每次都得到相同的数字序列。也许可以将结果保存到某个文件中?

EN

回答 3

Stack Overflow用户

发布于 2017-03-09 15:36:09

您可以提供一些固定的种子。

代码语言:javascript
运行
复制
import random

def main():
    random.seed(9001)
    x = [random.randint(1,100) for i in range(1,100)]
    return x

有关种子的更多信息,请访问:random.seed(): What does it do?

票数 8
EN

Stack Overflow用户

发布于 2017-03-09 15:44:59

下面是一个模仿您的代码的基本示例

代码语言:javascript
运行
复制
import random
s = random.getstate()

print([random.randint(1,100) for i in range(10)])

random.setstate(s)
print([random.randint(1,100) for i in range(10)])

在这两个调用中,您都会得到相同的输出。关键是,您可以在任何时候检索并在以后重新分配rng的当前状态。

票数 6
EN

Stack Overflow用户

发布于 2017-03-09 15:45:05

代码语言:javascript
运行
复制
In [19]: for i in range(10):
    ...:     random.seed(10)
    ...:     print [random.randint(1, 100) for j in range(5)]
    ...:
    ...:
[58, 43, 58, 21, 82]
[58, 43, 58, 21, 82]
[58, 43, 58, 21, 82]
[58, 43, 58, 21, 82]
[58, 43, 58, 21, 82]
[58, 43, 58, 21, 82]
[58, 43, 58, 21, 82]
[58, 43, 58, 21, 82]
[58, 43, 58, 21, 82]
[58, 43, 58, 21, 82]

必须在对random的新调用之前调用random.seed函数。

代码语言:javascript
运行
复制
In [20]: random.seed(10)

In [21]: for i in range(10):
    ...:     print [random.randint(1,10) for j in range(10)]
    ...:
[5, 6, 3, 9, 9, 7, 2, 6, 4, 3]
[10, 10, 1, 9, 7, 4, 3, 7, 5, 7]
[7, 2, 8, 10, 10, 7, 1, 1, 2, 10]
[4, 4, 9, 4, 6, 5, 1, 6, 9, 2]
[3, 5, 1, 5, 9, 7, 6, 9, 2, 6]
[4, 7, 2, 8, 1, 2, 9, 10, 5, 5]
[3, 3, 7, 2, 2, 5, 2, 7, 9, 8]
[5, 4, 5, 1, 8, 4, 4, 1, 5, 6]
[4, 9, 7, 3, 6, 10, 6, 7, 1, 5]
[5, 5, 5, 6, 6, 5, 2, 5, 10, 5]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42689301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档