收藏生成不重复的随机数

本例的主要是思路是,如果检测到已经存在该数字,则将循环数后退一个,重新生成。

void static Main()
{

  Random random = new Random();

  bool repeat = true;

  int temp ;

  int[] store = new int[10];

  for(int i = 0;i < 10;i++)

  {

    temp =random.Next(1,11);

    for(int j = 0; j<i;j++)

    {

      repeat = false ;

      if(temp == store[j])

      {

        repeat = true;

        break;

      }

    }

    store[i] = temp;    //将不重复的值存储到定义的数组当中

  }

  for(int  i = 0;i < 10;i++)

  {

    Console.WriteLine("store[{0}]为:{1}",i,store[i]);

  }

}

 

如果所要生成的随机数比较少的话,可以将所有的先存到数组当中, 然后再随机交换数组当中的数字即可

CODE:

static void Main()
{ 

  int[] store = new store[10];  //定义一个数组,并初始化

  for(int i =1;i<11;i++)      //通过循环将数组进行赋值
  {

    store[i-1] = i;

  }

 

  for(int j = 9;j>0;j--)

  {

    Random r = new Random();

    int index = r.Next(0,j);    //int index = r.Next(0,9);  这个值得商榷,感觉有些问题。

    int temp = store[index]; 

    store[index] = store[j];

    store[j] = temp;

  }

}

posted @ 2010-07-23 10:03  心的开始  阅读(204)  评论(0编辑  收藏  举报