Random类不能产生随机数的情况测试

   今天本想写段程序,产生一个1到100个随机数序列供使用,意外的发现一个问题,rd.Next产生全是

一样的数。就做了个测试,发出来给大家瞅瞅,也给自己留个记号~~
   一、背景:产生一个1到100个随机数序列供使用,通过Random类的Next(int minValue,int

maxValue)方法。
   二、系统环境:VS2008,FrameWork3.5
   三、操作过程:

3.1、产生同数字的情况:
  private void button4_Click(object sender, EventArgs e)
         {
              List<int> list = new List<int>();
              for (int i = 0; i < 31; i++)
              {
                  list.Add(GetRandom());
              }
              listBox1.DataSource = list;
         }
         private int GetRandom()
         {
              Random rd = new Random();
              return rd.Next(0, 101);
         }
Random类不能产生随机数的情况测试
       3.2、产生随机数字的情况:
  private void button4_Click(object sender, EventArgs e)
         {
              List<int> list = new List<int>();
              for (int i = 0; i < 31; i++)
              {
                  list.Add(GetRandom());
                  Thread.Sleep(20);
              }
              listBox1.DataSource = list;
         }
Random类不能产生随机数的情况测试
      3.3、另外我也直接用了rd.Next(),产生的同样结果。
  
      3.4、把Thread.Sleep(20);改成小于20毫秒的情况时,如(15,10),也会产生相似结果。

四、结论:
   Random类的Next方法连续执行的情况下,产生随机数相同;在执行间隔小于一定时间内,产生

的随机数相同。

你可能感兴趣的:(Random)