如果有1000个不同的数字,如何随机取得其中的100个成为数列,并且数列中没有重复。
基本原理就是每次把这个数字exclude在外面。
public static int[] Get100RandomNumberList(int [] random)
{
if (random==null || random.Length<100)
return random;
int len = random.Length;
int [] ret = new int [100];
for (int i = 0; i < 100; i++)
{
Random r = new Random();
int numberIndex = r.Next(len-i);
ret[i] = random[numberIndex];
int temp = random[len - 1-i];
random[len - 1 - i] = random[numberIndex];
random[numberIndex] = temp;
}
return ret;
}