c#有没有函数能生成不重复的随机数,比如1-10之间的不重复随机数???

 我来答
GeApocalypse
2011-06-30
知道答主
回答量:7
采纳率:0%
帮助的人:3.6万
展开全部
用Random类生成随机数,然后还前面生成的随机数比较,如果相同就删除。
然后继续用Random生成随机数只到生成的随机数一个都不重复

下面的代码可以参考一下,主要是用了RAND类的NEXT方法
int[] randomArray = new int[20];
Random random=new Random();
randomArray[0] = random.Next(1, 10);

for (int i = 1; i < 4; i++)
{

bool foundSame = false;
do
{
foundSame = false;
randomArray[i] = random.Next(1, 10);
for (int j = 0; j < i; j++)
{
if (randomArray[i] == randomArray[j])
{
foundSame = true;
break;
}
}

} while (foundSame);
}
huxiaoyuntian
2011-06-30 · 超过16用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:19.2万
展开全部
有,不过得自己写!当取到一个随机值时,从数组中排除掉,再从剩余的数组中继续取,直到数组为空!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
傅邃出好
2019-08-17 · TA获得超过3707个赞
知道大有可为答主
回答量:3099
采纳率:33%
帮助的人:185万
展开全部
用Random类生成随机数,然后还前面生成的随机数比较,如果相同就删除。
然后继续用Random生成随机数只到生成的随机数一个都不重复
下面的代码可以参考一下,主要是用了RAND类的NEXT方法
int[]
randomArray
=
new
int[20];
Random
random=new
Random();
randomArray[0]
=
random.Next(1,
10);
for
(int
i
=
1;
i
<
4;
i++)
{
bool
foundSame
=
false;
do
{
foundSame
=
false;
randomArray[i]
=
random.Next(1,
10);
for
(int
j
=
0;
j
<
i;
j++)
{
if
(randomArray[i]
==
randomArray[j])
{
foundSame
=
true;
break;
}
}
}
while
(foundSame);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式