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

时间:2016-03-16 08:33:47

标签: .net vb.net random

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

Dim r As Random = New Random()

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

 Dim r As Random = New Random(OldInitializationValue)

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

提前感谢您的回答。

1 个答案:

答案 0 :(得分:6)

Random不公开初始种子,它甚至不存储它,因此无法检索它。因此,您必须使用接收种子的constructor并自行存储。

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

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