我想用Random 生成介于0-25之间的随机数,由于要用很多次,所以生成的数不能重复?
在下研究了半天未果!特来请教高手!
可行有分送!在线等,谢谢了!

解决方案 »

  1.   

    System.Random random = new Random();
    return random.Next(25)
      

  2.   

    ArrayList rands = new ArrayList();
    private int GenerateRandom()
    {
       System.Random random = new Random();
       int i = random.Next(25);
       while(rands.Contains(i) && rands.Count < 25)
          {
    i = random.Next(25);
          }
             rands.Add(i);
    return i;
    }
    当然GenerateRandom()最多只能调用25次,超过25次肯定会生成重复的
    我也只是给出一个思路,就是将已经生成过的数都保存起来,下次生成随机数的时候先判断一下是否已经生成过了,如果是则重新生成一个新的
    lz可以自己再去完善一下
      

  3.   

    换一种思路. public class Randoms
            {
                ArrayList al;
                System.Random random;
                Randoms(int Len)
                {
                    random = new Random();
                    al = new ArrayList(Len);
                    for (i = 0; i < Len; i++)
                    {
                        al.Add(i);
                    }
                }
                public int GetRandom()
                {
                    if (al.Count == 0) return -1; 
                    int index  = random.Next(al.Count);
                    int num = al[index];
                    al.RemoveAt(index);
                    return num;
                }
            }