- 阅读权限
- 60
- 精华
- 最后登录
- 1970-1-1
- 在线时间
- 小时
- 主题
- 好友
- 相册
- 分享
- 日志
- 记录
- UID
- 215172
- 帖子
- 0
TA的每日心情 | 开心 2015-9-8 21:51 |
|---|
签到天数: 3 天 [LV.2]偶尔看看I
|
发表于 2017-6-21 17:54
|
显示全部楼层
来自:江苏
以下算法将产生若干个随机数,随机数的最大值为max参数,并且多次产生的随机数不能曾今出现过,否则将重新产生一个。
/// 产生随机数并存入**中
///
/// 随机数产生对象
/// 随机数的个数,范围[0,max)区间
/// 保存随机数的**
/// 产生随机数的个数
int GetRand(Random rand, int max, ArrayList reInt)
{
//产生一个随机数
int r = rand.Next(max);
reancount++;
//检查该数是否产生过 没有则添加
int index = reInt.IndexOf(r);
if (index == -1)
{
reInt.Add(r);
return reInt.Count;
}
else
{
return GetRand(rand, max, reInt);
}
}
调用以上方法的语句
while (re < randcount)
{
re = GetRand(rand, num, reInt);
}
Randcount:需要随机数的数量
Re:当前随机数的数量
reInt:保存随机数的**
num:随机数产生的最大数
rand:随机数产生器 |
|