可能性の重複:
Why does this Random Number Generator not random?ランダム()ランダムではないのはなぜですか?
私は、このテストプログラムがあります:私はSystem.Threading.Thread.Sleep(1);
をコメントアウトした場合、私は
static void Main(string[] args)
{
var randomNumbers = new Dictionary<int, int>();
foreach (var s in Enumerable.Range(1, 500))
{
var rand = Rand5();
if (!randomNumbers.ContainsKey(rand))
randomNumbers.Add(rand, 1);
else
randomNumbers[rand] += 1;
}
randomNumbers
.ToList()
.ForEach(x => Console.WriteLine("{0}: {1}", x.Key, x.Value));
Console.ReadLine();
}
static int Rand5()
{
System.Threading.Thread.Sleep(1);
return new Random().Next(1, 6);
}
を
5: 500
しかし、その行のコメントを外すと、乱数が得られます。
2: 87
4: 94
1: 116
5: 108
3: 95
なぜコード行が問題になるのですか?ありがとう!それは数字を生成するためのシードとしてクロックを使用していますし、あなたがそのように乱数を生成するとき、あなたは乱数発生器は、システムクロックに部分的に基づいて
おそらく、すべての*ランダム*タグ付けされた質問の約3分の1が同じ問題ですので、それは二重引用符などの問題をマークするのは無駄だと思います。 – Joey