可能重复:
为什么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
我希望每次使用相同的种子调用此函数时获得不同的数字.
自认为是相反的是什么随机构造进行了说明做,你将不得不学会与失望.你不能总是得到你想要的.
这是你的问题:
var random = new Random(id);
Run Code Online (Sandbox Code Playgroud)
Random 生成一组伪随机结果 - 对于同一个种子,每次都会得到相同的序列.
将Random对象的创建更改为静态字段,每当调用它时,您将得到不同的结果.
来自MSDN - 随机类:
随机数生成从种子值开始.如果重复使用相同的种子,则生成相同的数字序列.
| 归档时间: |
|
| 查看次数: |
724 次 |
| 最近记录: |