随机类不会创建随机数?

Ken*_*hou -1 c# random

可能重复:
为什么Random类不是真的随机?

我有以下类型的代码:

public static int GenerateRandomNumber(int seed)
{
    var random = new Random(seed);                
    int num = random.Next();
    while(num.ToString().Length != 6){
        num = random.Next();
    }
    return num;
}
Run Code Online (Sandbox Code Playgroud)

我希望每次使用相同的种子调用此函数时获得不同的数字.但我总是得到同样的结果.例如,每次拨打电话时GenerateRandomNumber(1),我总是得到号码640839.

如何解决这个问题?

Eri*_*ert 12

我希望每次使用相同的种子调用此函数时获得不同的数字.

自认为是相反是什么随机构造进行了说明做,你将不得不学会与失望.你不能总是得到你想要的.

  • ......但如果你试试...... (4认同)

Ode*_*ded 6

这是你的问题:

var random = new Random(id); 
Run Code Online (Sandbox Code Playgroud)

Random 生成一组伪随机结果 - 对于同一个种子,每次都会得到相同的序列.

Random对象的创建更改为静态字段,每当调用它时,您将得到不同的结果.

来自MSDN - 随机类:

随机数生成从种子值开始.如果重复使用相同的种子,则生成相同的数字序列.