开发学院软件开发C语言 Random类不能产生随机数的情况测试 阅读

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

 2010-09-30 22:42:45 来源:WEB开发网 闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹闂傚倷绀侀幉锟犲垂閻㈠灚宕查柟鎵閸庡秵銇勯幒鎴濃偓鐢稿磻閹炬枼妲堟繛鍡楃С濞岊亞绱撻崒姘扁枌闁瑰嚖鎷�婵犵數濮幏鍐川椤撴繄鎹曢梻渚€娼уú銈吤洪妸鈺佺劦妞ゆ帊鑳堕埊鏇㈡煏閸モ晛浠х紒杈╁仱閺佹捇鏁撻敓锟�闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹  闂傚倷鑳舵灙缂佺粯顨呴埢宥夊即閵忕姵鐎梺缁樺姈椤愮厧鈽夊Ο閿嬬€婚梺褰掑亰閸撴稑鈻斿鑸碘拺闁告稑饪村▓鏃€绻涚仦鍌氬闁崇粯鎹囬獮瀣攽閹邦剚顔傛俊鐐€栧濠氬储瑜忛幉鎾晸閿燂拷
核心提示:今天本想写段程序,产生一个1到100个随机数序列供使用,Random类不能产生随机数的情况测试,意外的发现一个问题,rd.Next产生全是一样的数,四、结论:Random类的Next方法连续执行的情况下,产生随机数相同;在执行间隔小于一定时间内,就做了个测试,发出来给大家瞅瞅

今天本想写段程序,产生一个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方法连续执行的情况下,产生随机数相同;在执行间隔小于一定时间内,产生的随机数相同。

Tags:Random 不能 产生

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
更多精彩
    赞助商链接

    热点阅读
      焦点图片
        最新推荐
          精彩阅读