在一个随机数调用函数中RndNum()
主要的随机方法调用如下
rand =new Random(i*temp*unchecked((int)DateTime.Now.Ticks));
其中i temp为int变量,
在主函数中顺序两次调用RndNum(),返回的随机数基本相同,或差别比较小
若是在两次调用间 做一次 sleep(),则两次调用RndNum()返回的随机数则有很大的变化!
去掉 sleep(),则差别比较小;
最后若传参给RndNum(int parm),调用做如下改动
rand =new Random(i*temp*unchecked((int)DateTime.Now.AddSeconds(parm).Ticks));
前后两次传不同的参数parm,但是两次调用返回的随机数 变化也不是很大!求高人!!!!!!!

解决方案 »

  1.   

    i*temp*unchecked((int)DateTime.Now.Ticks 本身变化就不大
      

  2.   

    怎么会?
    我试了差距很大啊!
    你是这么做的吗?
                //用2代替了i,用105代替了temp
                Random rand = new Random(2 * 105 * unchecked((int)DateTime.Now.Ticks));
                int i1 = rand.Next();
                int i2 = rand.Next();
      

  3.   

    为什么你每次都要new一个新的Random呢?
    我一般都是用定时器定时的更换random就好了