对于彩票调度程序来说,比 LCG 更好的(伪)随机数生成器是什么?

2023-12-14

我想设计一个彩票调度程序,我需要一个非常好的(伪)随机数生成器,类似于 LCG,但我想知道是否还有其他更好的选择?我专门寻找用 C 编写的随机生成器。

LCG代码:

unsigned long lcg_rand(unsigned long a)
{
  return (a * 279470273UL) % 4294967291UL;
}

我也想知道是否srand()可以用于此目的还是不高度准确?


如果您需要简单但不错的质量,我会使用 64 位 LCG 的高 32 位(或更少),可能会对输出应用调节功能。执行此操作时,我复制了中使用的回火函数梅森扭转者。我不建议实际使用 Mersenne Twister,因为它比其他 PRNG 具有更多的复杂性和内部状态,但质量却没有明显提高。

这是一些示例代码:

static uint32_t temper(uint32_t x)
{
    x ^= x>>11;
    x ^= x<<7 & 0x9D2C5680;
    x ^= x<<15 & 0xEFC60000;
    x ^= x>>18;
    return x;
}
uint32_t lcg64_temper(uint64_t *seed)
{
    *seed = 6364136223846793005ULL * *seed + 1;
    return temper(*seed >> 32);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对于彩票调度程序来说,比 LCG 更好的(伪)随机数生成器是什么? 的相关文章

随机推荐

  • 矩阵上的垃圾、索引和唯一(如何保持矩阵格式)

    在 8x8 矩阵上使用此方法 gt gt junk index unique data first Capture the index ignore junk gt gt data sort index Index data with th
  • 为什么Java中的String.hashCode()有很多冲突? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 为什么 String ha
  • 无法加载文件或程序集或其依赖项之一。该系统找不到指定的文件。 (GAC 不允许)

    我有一个 主 程序 它使用反射动态加载我自己的 plugin dll 文件 plugin dll 文件通过使用 Visual Studio 引用来引用第三方 device dll 只要 device dll 和 plugin dll 与 M
  • jQuery - 从文本区域选择所有文本

    我怎样才能做到当您在文本区域内单击时 它的整个内容都会被选中 最终 当您再次单击时 取消选择它 为了防止用户在每次尝试使用鼠标移动插入符号时选择整个文本时感到恼火 您应该使用focus事件 而不是click事件 以下内容将完成这项工作并解决
  • Mongoose 和引用 UUID 数组不转换

    使用 mongoose uuid 库时 我可以为模式设置 UUID 类型 因此当我读取数据时 它采用字符串 utf 8 格式 而当我保存数据时 它采用 UUID ObjectID BSON 类型 4 格式 这对于我的架构中的顶级或平面直接值
  • 如何在C++中使用虚函数来实现多态行为?

    我对 C 的这些重要功能很陌生 我已经在这里阅读了有关这些主题的一些问题 答案 并用谷歌搜索了一些文档 但我仍然对此感到困惑 如果有人能给我建议一些好的在线教程或书籍章节 让我轻松而缓慢地理解这个概念 并从基础开始 那就太好了 另外 如果有
  • 使用不同类型的行反序列化 XML C#

    反序列化 XML 时遇到问题 无法理解如何制作财产data根据 xml 属性不同idxds 生成一个公共属性data结合了数据 UserInfo 数据 UserTransactions 的属性 尝试过解决方案this线程但没有运气 XML
  • jQuery:快速滚动 - 可能吗?

    我有一个带有固定标题的可滚动表格 是否可以在滚动条上进行 捕捉滚动 这意味着表格行不会逐像素滚动 而是捕捉响应其行高 以便更好地查看 答案是 是 您可以调整 scrollTop 并使其成为您想要的任何内容以响应 onscroll 事件 阅读
  • 对对象的所有引用

    Java中是否可以获取一个对象的所有引用 我需要检查的是对象是否已删除所有回调订阅 Thanks 这可以通过JVMTI通常由堆分析器完成 然而 它不能在 Java 内部完成
  • 在 C# 中取消/中止任务

    我有一个 C 程序 它执行一些服务调用 我需要在这个程序中添加一些代码 以便在单击按钮 winform 时能够停止这些服务调用 例如 如果调用时间太长并且用户感到无聊 困难在于我无法修改执行调用的代码块 为此 我计划使用 Unity 框架进
  • 递归查找当前目录下所有视图私有文件的命令

    递归查找当前目录中所有视图私有文件的clearcase命令是什么 常用的命令是基于cleartool ls ct lsprivate 但它仅适用于动态视图 不适用于快照视图 ct ls rec view only 至少 它在快照和动态视图中
  • 如何在tomcat 7中加密server.xml的密码

    我想消化 加密 tomcat 的 server xml 密码 我在互联网上看到了一些代码 这些代码导致我在资源标签内添加工厂 正如你在下面看到的 不幸的是 我已经在工厂中添加了 Atomikos 但不允许我添加第二个工厂 您能否帮助我使用第
  • 为什么后台服务运行时会停止?

    我的 Android 应用程序中有一个后台服务 其中有一个线程经常监听最近运行的任务 我的服务会覆盖这两个服务onCreate and onStartCommand 方法 当我尝试打开一些应用程序时 例如Gallery Camera等等 服
  • 如何将非流文件加入DStream?

    我想将 DStream 中的每个 RDD 与非流式 不变的参考文件连接起来 这是我的代码 val sparkConf new SparkConf setAppName LogCounter val ssc new StreamingCont
  • 使用插入排序有充分的理由吗?

    对于通用排序 答案似乎是否定的 因为快速排序 合并排序和堆排序在平均情况和最坏情况下往往表现更好 然而 插入排序似乎在增量排序方面表现出色 即在很长一段时间内一次向列表添加一个元素 同时保持列表排序 特别是如果插入排序是作为链表实现的 O
  • Python IDLE 中的表情符号/表情符号

    我无法编码和显示 U0001f600 U0001f650 范围内的字符 它们被称为表情符号或表情符号 用于所有社交媒体 Python错误信息 File C Python Python342x64 lib encodings cp1251 p
  • 暴露 Docker 容器端口

    我一直在尝试通过 ip 连接到 docker 容器 但仍然不成功 当我使用 docker检查容器id 时 我得到这个结果 我的虚拟盒子默认设置为 有人可以帮我解决这个问题吗 运行 docker 时 您可以指定外部世界可以访问的端口 基本语法
  • 合并列以删除 NA

    我在 R 中有一些列 对于每一行 其中只有一个值 其余的将为 NA 我想将它们合并到具有非 NA 值的一列中 有谁知道一个简单的方法来做到这一点 例如我可以有如下 data lt data frame a c A B C D E x c 1
  • React Native 溢出 Touchable 在 Android 中不起作用

    请看看我的世博小吃 下拉项在 iOS 中是可触摸的 但在 Android 中则不可触摸 固定容器的高度 灰色框 会导致此问题 但我需要保持工具栏的固定高度 我尝试过使用react native view overflow包但没有运气 这个需
  • 对于彩票调度程序来说,比 LCG 更好的(伪)随机数生成器是什么?

    我想设计一个彩票调度程序 我需要一个非常好的 伪 随机数生成器 类似于 LCG 但我想知道是否还有其他更好的选择 我专门寻找用 C 编写的随机生成器 LCG代码 unsigned long lcg rand unsigned long a