gpt4 book ai didi

c# - 在循环中或循环外实例化 Random

转载 作者:行者123 更新时间:2023-11-30 15:06:19 25 4
gpt4 key购买 nike

我通常以下列方式生成随机的东西:

Random random = new Random(DateTime.Now.Millisecond);

for (int i = 0; i < 100; i++)
{
Console.WriteLine(random.Next(0, 100));
}

我想知道如果我将 Random 实例化放在循环中是否有区别:

for (int i = 0; i < 100; i++)
{
Random random = new Random(DateTime.Now.Millisecond);

Console.WriteLine(random.Next(0, 100));
}

哪个更随机还是相同?

最佳答案

第一个(即在循环之外)更高效且更随机,因为第二个在很短的时间内创建了大量 Random 实例,这将导致多个实例具有相同的种子(即相同的 Millisecond) 这反过来意味着一遍又一遍地生成相同的随机数。

来自 MSDN

The random number generation starts from a seed value. If the same seed is used repeatedly, the same series of numbers is generated.

关于c# - 在循环中或循环外实例化 Random,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7992399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com