我必须能够重复用我的代码进行的实验,它会产生一些随机数,我需要得到我的新random()句子的初始化值。我有这句话来制作我使用的随机对象
Dim r As Random = New Random()
正如我所读到的,它从系统日期时间获取初始化值。如果实验成功,我需要能够重复它。我怎样才能获得初始化编号:
Dim r As Random = New Random(OldInitializationValue)
我想每次执行我的应用程序时都必须自己创建一个Initialization值但如果有一种方法可以保存它,我很高兴知道它。
提前感谢您的回答。
答案 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
现在,您始终可以使用相同的种子创建随机实例,以获得相同的伪随机值序列。