如何从已创建的Random中获取种子

Jos*_*uel 3 .net vb.net random

我必须能够重复用我的代码进行的实验,它会产生一些随机数,我需要得到我的新random()句子的初始化值.我有这句话来制作我使用的随机对象

Dim r As Random = New Random()
Run Code Online (Sandbox Code Playgroud)

正如我所读到的,它从系统日期时间获取初始化值.如果实验成功,我需要能够重复它.我怎么能得到初始化号码才能做到:

 Dim r As Random = New Random(OldInitializationValue)
Run Code Online (Sandbox Code Playgroud)

我想每次执行我的应用程序时我都必须自己创建一个Initialization值但是如果有一种方法可以保存它,我很高兴知道它.

提前感谢您的回答.

Tim*_*ter 6

Random不暴露初始种子,它甚至不存储它,所以没有办法检索它.所以你必须使用接受种子的构造函数并自己存储它.

Dim mySeed As Int32 = Environment.TickCount ' store it somewhere '

Dim myRandom = New Random(mySeed)
For i As Int32 = 1 To 10
    Console.WriteLine(myRandom.Next(1, 100))
Next

' somehwere else
myRandom = New Random(mySeed)
For i As Int32 = 1 To 10
    Console.WriteLine(myRandom.Next(1, 100))
Next
Run Code Online (Sandbox Code Playgroud)

现在,您始终可以使用相同的种子创建随机实例,以获得相同的伪随机值序列.