如何生成可重复的随机数序列?

2023-12-21

我想要一个可以生成伪随机值序列的函数,但该序列每次运行都是可重复的。我想要的数据必须在给定范围内相当好的随机分布,它不一定是完美的。

我想编写一些代码,根据随机数据对其运行性能测试。我希望每台机器上的每次测试运行的数据都相同,但由于存储原因,我不想随测试一起发送随机数据(它最终可能会达到很多兆字节)。

图书馆为random模块似乎并没有说相同的种子在任何机器上总是会给出相同的序列。

编辑:如果您建议我播种数据(正如我上面所说),请提供说明该方法有效并且适用于一系列机器/实现的文档。

编辑:Mac OS X 上的 CPython 2.7.1 和 PyPy 1.7 以及 CPython 2.7.1 和 CPython 2.52=.2 Ubuntu 似乎给出了相同的结果。尽管如此,还没有任何文档白纸黑字地规定这一点。

有任何想法吗?


为此,我使用了重复 MD5 哈希,因为哈希函数的目的是跨平台一对一转换,因此它在不同平台上始终是相同的。

import md5

def repeatable_random(seed):
    hash = seed
    while True:
        hash = md5.md5(hash).digest()
        for c in hash:
            yield ord(c)

def test():
    for i, v in zip(range(100), repeatable_random("SEED_GOES_HERE")):
        print v

Output:

184 207 76 134 103 171 90 41 12 142 167 107 84 89 149 131 142 43 241 211 224 157 47 59 34 233 41 219 73 37 251 194 15 253 75 145 96 80 39 179 249 202 159 83 209 225 250 7 69 218 6 118 30 4 223 205 91 10 122 203 150 202 99 38 192 105 76 100 117 19 25 131 17 60 251 77 246 242 80 163 13 138 36 213 200 135 216 173 92 32 9 122 53 250 80 128 6 139 49 94

本质上,代码将获取您的种子(任何有效字符串)并重复对其进行哈希处理,从而生成 0 到 255 之间的整数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何生成可重复的随机数序列? 的相关文章

随机推荐

  • Python Pillow:在发送到第三方服务器之前使图像渐进式

    我有一个使用 Django Forms 上传的图像 它在变量中可用InMemoryFile我想做的就是让它进步 使图像成为渐进式的代码 img Image open source img save destination JPEG qual
  • EntityManager 中的 SessionFactory 抛出异常

    我尝试使用以下几行从 JPA 的 EntityManager 获取 Hibernate 的 SessionFactory PersistenceContext EntityManager manager public SessionFact
  • 以深度优先顺序生成数组笛卡尔积的算法

    我正在寻找一个示例 说明如何在 Ruby 类似 C 的语言或伪代码 中创建可变数量的整数数组 每个数组的长度不同 的笛卡尔积 并以特定顺序逐步遍历结果 因此 1 2 3 1 2 3 1 2 3 1 1 1 2 1 1 1 2 1 1 1 2
  • Sencha Touch MVC 最佳实践

    我试图将我的注意力集中在 Sencha Touch 的 MVC 框架上 但我发现了几种不同的方法 其中一处 发现here http vimeo com 17705448 SenchaCon 2010 上提出了一种构建 Sencha Touc
  • 关闭:使用未解析的标识符“self”

    我正在解析 Swift 语言指南教程 来自 Apple iOS 开发库 并为每一章创建一个单独的 swift 文件 在每个文件中 我创建多个函数 在其中隔离它们提供的代码片段 一切正常 直到测试闭包的强引用循环 由于某种原因 如果在函数内部
  • RampUsersPerSec 函数的真正作用是什么?

    我发现加特林文档对特定功能有点不清楚 rampUsersPerSec 在给定持续时间内每秒注入随机数量的用户 rate1 至 rate2 期间 dur 单位 从起始速率1注入用户 目标速率2 在给定持续时间内以每秒用户数定义 例如 在 10
  • TestFlight 处理状态

    上传新版本的应用程序后试飞 应用程序有状态加工几分钟后 程序集从列表中消失 之前没有这个问题 请问是什么原因呢 检查邮箱 您将收到来自 Apple 的邮件 如果您仍然没有收到任何邮件 请检查 plist 和权限 确保您已在 plist 中包
  • 如何在JPQL中应用正则表达式?

    我使用 JPA Hibernate 作为持久层 我需要添加一个基于正则表达式的 WHERE 子句 这样的一些模式是 SELECT FROM TableName where REGEXP LIKE ColumnName Pattern 我从结
  • SQL Server Express连接字符串

    sql server连接字符串和express版本有区别吗 By default though I don t recommend it1 Sql Express is installed as a named instance http
  • 内置可调用作为 Django Field 的默认参数

    我有一个 JSONField 需要对其应用默认字典 根据文档 我避免将可变字典传递到默认字段 这是通过将复制方法传递给默认参数来完成的 如下所示 default dict some key some value class MyModel
  • 使用 .runsettings 从代码覆盖率中排除程序集

    当为包含多个项目的解决方案运行代码覆盖率时 我注意到代码覆盖率还包括我的测试程序集 我发现一篇文章建议使用以下 runsettings 模板
  • 是否可以发出从泛型类型派生的类型,同时将其自身指定为泛型类型参数?

    想象一下以下完全合法的类型层次结构 class A
  • with 语句在 Python 2.4 中产生“无效语法”错误

    我有一些用 Python 2 7 编写的代码 如下所示 if os path exists path to my file somefile txt with open path to my file somefile txt r as r
  • 在 React Native 中更改应用程序背景颜色

    我正在尝试将 React Native 应用程序中的背景颜色从灰色更改为白色 我在用着反应导航做一个TabNavigator在我渲染它之后 我试着把这个TabNavigator在视图和集合中backgroundColor但所有屏幕都变白了
  • GitHub 不断抛出“无法提交子模块”错误,我不明白这是为什么。有任何想法吗?

    我正在尝试将我的项目放在 GitHub 上 但我一直遇到问题 我在 GitHub 网站 上创建了一个存储库 下载了客户端 克隆 基本上拖放 GitHub 给我的链接 它 将我的项目移动到克隆目录中 但我仍然没有看到文件 所以我检查了 更改
  • Pickling 经过训练的 NLTK 模型

    所以我目前正在一组手术数据上训练隐马尔可夫模型 如下所示 nltkTrainer nltk tag hmm HiddenMarkovModelTrainer range 15 range 90 model nltkTrainer train
  • 如何使用 Kubectl 隐藏列

    我使用 tmuxinator 生成一个 tmux 窗口 用于监视一些 kubectl 命令的输出 例如 watch n 5 kubectl get pods rc svc pv pvc 但有时 Kubectl 的输出变得太宽 即滚动更新后的
  • NumPy 布尔数组警告?

    我有一些 numpy 数组 可以说a b and c 并创建了一个mask适用于所有这些 我试图这样掩盖它们 a a mask where mask is a bool大批 值得注意的是 我已经验证过 len a len b len c l
  • 使用 r 包 xlsx 删除 Excel 中的工作表

    正如标题所述 我想使用 r 和 xlsx 包删除 excel 中的第二个工作表 然而 运行代码后 什么也没有发生 以下是我用来删除工作表的示例代码 path C ECOS Code Test data xlsx sheets getShee
  • 如何生成可重复的随机数序列?

    我想要一个可以生成伪随机值序列的函数 但该序列每次运行都是可重复的 我想要的数据必须在给定范围内相当好的随机分布 它不一定是完美的 我想编写一些代码 根据随机数据对其运行性能测试 我希望每台机器上的每次测试运行的数据都相同 但由于存储原因