【发布时间】:2013-06-07 05:25:23
【问题描述】:
我提供了一个简单的代码,它将输出 10 个介于 0 和 100 之间的随机数字。当我在 Visual Studio (C#) 中使用 F5 运行它时,我得到相同的数字 10 次。但是,如果我通过调试模式逐行使用 F10 或 F11 运行它,我会得到 10 个不同的数字(可能并非完全不同,但它们是随机的)。
public static void rand() {
for (int j = 0; j < 10; j++) {
Random r = new Random();
Console.WriteLine( r.Next(100));
}
}
我知道如何解决这个问题,即通过在循环之外实例化 Random r 并通过引用复制,但我想了解为什么会发生这种情况。我认为这与种子有关,但程序在调试模式下运行时确实可以工作,这让我感到困惑。
另外,现在我怀疑我是否总是需要测试调试模式是否给了我正确的结果。
【问题讨论】:
-
尝试声明你的 Random outside 循环
-
感谢您的建议,但我已经在帖子中提到了