【问题标题】:Use a string as seed generator for random number generation in ruby on rails [duplicate]使用字符串作为种子生成器在 ruby​​ on rails 中生成随机数 [重复]
【发布时间】:2019-05-17 09:07:53
【问题描述】:

我有一个uuid(例如a3989f5a-1c4b-11e3-8573-0025906a9230),我需要将它用作在 ruby​​ on rails 中生成随机数的种子。

每次收到uuid 的请求时,我都需要生成相同的随机数序列。我在这里还缺少其他此类功能吗?

请注意:对于给定的uuid,每次都需要生成相同的随机数序列,这一点非常重要。

我尝试过使用 ruby​​ 提供的Kernel.srand() 方法,但是它只接受整数。

【问题讨论】:

    标签: ruby-on-rails string random uuid random-seed


    【解决方案1】:

    怎么样

    srand "a3989f5a-1c4b-11e3-8573-0025906a9230".tr('-', '').to_i(16)
    

    在我们去除破折号后,它会将 UUID 中的 Ruby rng 种子作为十六进制数

    【讨论】:

    • 这是正确答案。它之所以有效,是因为 UUID 只是一个十六进制编码的 128 位数字(破折号仅用于人类可读性)。还值得注意的是,对于 OP 的用例,Random.new(seed) 可能有助于初始化多个 RNG,而不是使用 srand 为全局 RNG 播种。
    猜你喜欢
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 2015-03-14
    相关资源
    最近更新 更多