gpt4 book ai didi

ruby - 为什么我要为 Array#shuffle 使用自定义 RNG?

转载 作者:数据小太阳 更新时间:2023-10-29 07:26:48 26 4
gpt4 key购买 nike

Array#shuffle 的文档状态:

shuffle(random: rng) → new_ary

The optional rng argument will be used as the random number generator.

a.shuffle(random: Random.new(1))  #=> [1, 3, 2]

这是什么意思,我为什么要这样做?

最佳答案

可选的 rng 参数将创建一个固定的随机模式。

让我们尝试不使用 rng 参数的 shuffle,我们应该得到不同的随机模式:

a = [ 1, 2, 3 ] 
a.shuffle
# => [3, 2, 1]
a.shuffle
# => [2, 3, 1]

现在有了 rng:

a.shuffle(random: Random.new(1))
# => [1, 3, 2]
a.shuffle(random: Random.new(1))
# => [1, 3, 2]

如您所见,打乱后的数组将始终包含相同的随机模式 - 在本例中为 [1, 3, 2]

我为什么要这样做?

(如以下评论所述)

可重现的随机性非常有值(value)。它在测试、游戏等方面很方便。

关于ruby - 为什么我要为 Array#shuffle 使用自定义 RNG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31400157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com