asp.net 无重复随机数代码
程序员文章站
2022-06-04 23:42:28
复制代码 代码如下:/// /// 产生无重复随机数 /// ///
/// <summary>
/// 产生无重复随机数
/// </summary>
/// <param name="num">个数</param>
/// <param name="minvalue">最小数</param>
/// <param name="maxvalue">最大数</param>
/// <returns>数组</returns>
public int[] getnum(int num, int minvalue, int maxvalue)
{
random ra = new random(unchecked((int)datetime.now.ticks));
int[] arrnum = new int[num];//注意:数组中各元素的初始值是0,当0在取值范围内时要另处理
int tmp = 0;
for (int i = 0; i < num; i++)
{
tmp = getrandomnum(tmp, minvalue, maxvalue, ra);//取出值赋到数组中
if (array.indexof(arrnum, tmp) < 0)//判断是否存在,不存在的话元素tmp的索引应为-1
{
arrnum[i] = tmp;
}
else
{
i = i - 1;
}
}
return arrnum;
}
public int getrandomnum(int tmp, int minvalue, int maxvalue, random ra)
{
tmp = ra.next(minvalue, maxvalue);
return tmp;
}
复制代码 代码如下:
/// <summary>
/// 产生无重复随机数
/// </summary>
/// <param name="num">个数</param>
/// <param name="minvalue">最小数</param>
/// <param name="maxvalue">最大数</param>
/// <returns>数组</returns>
public int[] getnum(int num, int minvalue, int maxvalue)
{
random ra = new random(unchecked((int)datetime.now.ticks));
int[] arrnum = new int[num];//注意:数组中各元素的初始值是0,当0在取值范围内时要另处理
int tmp = 0;
for (int i = 0; i < num; i++)
{
tmp = getrandomnum(tmp, minvalue, maxvalue, ra);//取出值赋到数组中
if (array.indexof(arrnum, tmp) < 0)//判断是否存在,不存在的话元素tmp的索引应为-1
{
arrnum[i] = tmp;
}
else
{
i = i - 1;
}
}
return arrnum;
}
public int getrandomnum(int tmp, int minvalue, int maxvalue, random ra)
{
tmp = ra.next(minvalue, maxvalue);
return tmp;
}