C# Random

从属System.Random

1
2
3
4
5
6
7
Random r = new Random();
var number = r.Next(1,100);


int Seed = 12;
Random r = new Random(Seed); //这样随机出来的数字都相同
var number = r.Next(1,100);

不自定义随机数种子时,new Random()使用当前系统时间作为种子,当随机数生成过快时会使用同一个系统时间而导致生成的随机数相同

解决办法之一:Random r = new Random((int)DateTime.Now.Ticks);

DateTime.Now.Ticks的值为自 0001 年 1 月 1 日午夜 12:00 以来所经过时间以 100 毫微秒为间隔表示时的数字(DateTime.Ticks是long类型),可以尽量避免重复


Next()重载

  • Next():随机返回 0 ~ 2147483647
  • Next( int ):上限及以内的正整数
  • Next( int, int ):下限到上限的正整数