产生不重复random数列

来源:百度知道 编辑:UC知道 时间:2024/05/31 06:37:59
有什么办法可以在一个规定范围内产生一个没有重复数的数列
就象产生一组彩票的号码一样 高手指点

private const int Num = 3; //数目
private const int MaxValue = 5; //最大数
private const int MinValue = 1; //最小数

public int[] sort(int[] num)
{
int i,j ,temp;
int n = num.Length;
for (i = 0; i < n - 1; i++)
{
for (j = i + 1; j < n; j++) /*注意循环的上下限*/
{
if (num[i] > num[j])
{
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
}
return num;
}

public int getNum(int[] arrNum, int tmp, int minValue, int maxValue, Random ra)
{
int n = 0;
while (n <= arrNum.Length - 1)
{
if (arrNum[n] == tmp) //利用循环判断是否有重复
{
tmp = ra.Next(minValue, maxValue); //重新随机获取。
getNum(arrNum, tmp, minValue, maxValue, ra);//递归:如果取出来的数字和已取得的数字有重复就重新随机获取。
}
n++;
}
return tmp;
}

public string getRandomNum(int num, int minValue, int maxValue)
{
Random ra = new Random(unchecked((