c#

位置:IT落伍者 >> c# >> 浏览文章

用C#生成不重复的随机数(2)


发布日期:2019年02月05日
 
用C#生成不重复的随机数

Hashtable hashtable = new Hashtable();

Random rm = new Random();

int RmNum = ;

for (int i = ; hashtableCount < RmNum; i++)

{

int nValue = rmNext();

if (!hashtableContainsValue(nValue) && nValue != )

{

hashtableAdd(nValue nValue);

ConsoleWriteLine(nValueToString());

}

}

方法递归用它来检测生成的随机数是否有重复如果取出来的数字和已取得的数字有重复就重新随机获取

Random ra=new Random(unchecked((int)DateTimeNowTicks));

int[] arrNum=new int[];

int tmp=;

int minValue=;

int maxValue=;

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

{

tmp=raNext(minValuemaxValue); //随机取数

arrNum=getNum(arrNumtmpminValuemaxValuera); //取出值赋到数组中

}

public int getNum(int[] arrNumint tmpint minValueint maxValueRandom ra)

{

int n=;

while (n<=arrNumLength)

{

if (arrNum[n]==tmp) //利用循环判断是否有重复

{

tmp=raNext(minValuemaxValue); //重新随机获取

getNum(arrNumtmpminValuemaxValuera);//递归:如果取出来的数字和已取得的数字有重复就重新随机获取

}

n++;

}

return tmp;

}

               

上一篇:使用C#编写的一个定时关机程序

下一篇:基于C#的接口基础教程之六