我是一名新手C#学习者,并构建了一个系统,可以从一组有序的问题中生成问题表。每个问题表都有30个问题从问题集中随机选择。每个问题表由一个整数唯一标识,该整数用作种子值。
由于我不知道随机生成器如何工作的内部细节,我想知道n
调用具有相同种子的Random.Next()
是否总是产生相同的数字无论.NET版本如何。
最小的工作示例如下。
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
const int seed = 12345;
Random rnd = new Random(seed);
for (int x = 0; x < 10; x++)
Console.WriteLine(rnd.Next());
}
}
}
答案 0 :(得分:8)
也许请阅读documentation:
来电者须知
在.NET Framework的主要版本中,不保证Random类中随机数生成器的实现保持不变。因此,您的应用程序代码不应假设相同的种子将在.NET Framework的不同版本中产生相同的伪随机序列。
答案 1 :(得分:-3)
是的!如果你提供相同的种子,你有可能获得相同的随机数
Random rnd=new Random(5);
for(int i=0;i<10;i++)
{
Console.WriteLine(rnd.Next());
}
Console.WriteLine(".....");
Random rnd1 = new Random(5);
for (int i = 0; i < 10; i++)
{
Console.WriteLine(rnd1.Next());
}
Console.ReadLine();
############### 输出
726643700
610783965
564707973
1342984399
995276750
1993667614
314199522
2041397713
1280186417
252243313
.....
726643700
610783965
564707973
1342984399
995276750
1993667614
314199522
2041397713
1280186417
252243313