gpt4 book ai didi

c# - 每台机器都使用相同的种子生成相同的随机数结果吗?

转载 作者:太空狗 更新时间:2023-10-29 17:33:21 25 4
gpt4 key购买 nike

我目前卡在随机生成器中。需求规范显示了这样一个示例:

Random rand = new Random(3412);

rand结果不直接给出,而是用于其他表现。

我编写了与上面相同的代码以通过种子 3412 生成随机数。然而,其余性能的结果与样本完全不同。

生成结果是518435373,我使用了同样的代码在在线c#编译器上试过,但是得到的生成结果不同,是11688046,其余性能结果也与示例不同。

所以我只是想知道在不同的机器上应该有所不同吗?

顺便说一句,谁能提供一下你机器的结果,看看它是否和我一样。

最佳答案

我希望任何一个实现都能为相同的种子提供相同的序列,但很可能涉及不同的实现。例如,“在线 C# 编译器”很可能最终会使用 Mono,我希望它的实现与 .NET 中的实现不同。

我不知道 .NET 的版本 之间的实现是否发生了变化,但同样,这似乎完全有可能。

Random(int) 的文档构造函数状态:

Providing an identical seed value to different Random objects causes each instance to produce identical sequences of random numbers.

...但它没有指定不同版本的含义等。哎呀,它甚至没有说明 x86 和 x64 版本是否会给出相同的结果。我希望在任何一个特定的 CLR 实例中得到相同的结果(即一个进程,而不是两个并排运行的 CLR*。

如果您需要更稳定的东西,我会从指定算法开始 - 我打赌有可用的 Mersenne Twister 等实现。

关于c# - 每台机器都使用相同的种子生成相同的随机数结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12214402/

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