gpt4 book ai didi

Java Apache Math3 MersenneTwister VS Python 随机

转载 作者:太空狗 更新时间:2023-10-30 03:01:29 29 4
gpt4 key购买 nike

我的任务是将一些 python 代码移植到 Scala 以用于研究目的。现在我使用 Apache Math3 公共(public)库,但在使用 MersenneTwister 时遇到困难。

在 Python 中:

SEED = 1234567890

PRIMARY_RNG = random.Random()
PRIMARY_RNG.seed(SEED)
n = PRIMARY_RNG.randrange((2**31) - 1) #1977150888

在 Scala 中:

val Seed = 1234567890
val PrimaryRNG = new MersenneTwister(Seed)
val n = PrimaryRNG.nextInt(Int.MaxValue) //1328851649

我在这里错过了什么?两者都是 MersenneTwister 的,
Int.MaxValue = 2147483647 = (2**31) - 1

最佳答案

显然是 Apache Commons Math uses an integer as the base source of randomness ,虽然我不太确定它是如何提取它的,而 Python uses the double generated by a C version of the algorithm .

种子值的处理方式也可能存在差异,但由于它们甚至不会以相同的方式读出位,因此即使底层伪随机生成器相同,也不会期望它们具有可比性.

关于Java Apache Math3 MersenneTwister VS Python 随机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25127021/

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