Random.Next()数字始终在每个运行时提供相同的输出

时间:2014-03-17 01:46:18

标签: c# random

我知道这里有很多关于随机的问题,但它们根本没有帮助我,它们是关于在一个运行时生成相同的数字,而我的不是

所以这是我的代码。

    Random rnd = new Random(0);
    for (int c = 0; c < arraySize; c++)
        data[c] = rnd.Next();

如果我是第一次运行它 rnd.Next()的元素是1559595546 下一个输出将是1755192844 等等,
 如果我关闭程序并重新运行它,
将生成相同的数字集

    data[0] = 1559595546
    data[1] = 1755192844   
and so on,

为什么会这样?每次关闭程序并运行它时,它不应该生成不同的数字集吗?

请帮助我理解这一点。

2 个答案:

答案 0 :(得分:7)

不,您提供的固定种子为0.因此输出始终相同。阅读您正在使用的构造函数重载的文档:

http://msdn.microsoft.com/en-us/library/ctssatww%28v=vs.110%29.aspx

特别注意以下声明:

  

为不同的Random对象提供相同的种子值会导致每个实例产生相同的随机数序列。

也许你应该:

 var rnd = new Random(); //no seed

答案 1 :(得分:0)

这是因为你提供了种子0喜欢

Random = new Random(0); //0 is Seed

如果删除它,它将根据您的需要生成不同的随机数。

相关问题