C# - 带种子的随机数

The*_*iPL 4 c# random random-seed

我有这个代码:

var rand = new Random(0);
for(int i = 0; i < 100; i++)
{
  Console.WriteLine(rand.Next(0, 100));
}
Run Code Online (Sandbox Code Playgroud)

程序应该给我100倍相同的数字(因为种子是相同的),但它给出了不同的数字......
为什么?

编辑:
我什么时候做

for(int i = 0; i < 100; i++)
{
  Console.WriteLine(new Random(0).Next);
}
Run Code Online (Sandbox Code Playgroud)

每次返回相同的数字.那意味着种子正在改变?如果有,怎么样?它在增加吗?

ser*_*iyb 10

它不应该给你100个相同的数字,但每次重新启动应用程序时它应该给你完全相同的100个数字.

种子用于随机预测.想象多人游戏,你想要随机的东西.但是你想确保每个玩家/客户的随机行为相同.这seed是去这里的方式.

  • 我还有一个问题 - 我可以从种子中找到第 n 个随机数吗? (2认同)