求高手,C#,如何生成15个1-15之间的不重复的随机数???

 我来答
Archer羽的传说
2013-03-07 · 超过29用户采纳过TA的回答
知道答主
回答量:112
采纳率:66%
帮助的人:51.3万
展开全部
考虑到算法效率~你其实可以用另一种方式来实现~
先生成一个1-15按顺序的数组
然后生成随机变量种子~
每次取一个在数组长度内的随机数
然后取出对应的数值并放到另一个数组中
而存的那十五个数值的数组则把该数值去除~这样十五次就能得到了~
代码如下:
//定义数组~并给出长度
List<int> ilist = new List<int>();;

//设置初始值
for (int i = 1; i < 16; i++)
{
ilist.Add(i);
}

Random rd = new Random();

//要得到15个随机数
int[] ShowNum = new int[15];

for (int i = 0; i < 15; i++)
{
//临时变量
int temp = rd.Next(ilist.Count);

//取随机数
ShowNum[i] = ilist[temp];

ilist.Remove(ilist[temp]);
}
目前登陆帐号
2013-03-07 · TA获得超过129个赞
知道小有建树答主
回答量:257
采纳率:71%
帮助的人:79.2万
展开全部
1、用随机数生成函数生成随机数
2、然后用生成的数字除与15,取余
3、循环上面2步骤,一直到生成15个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
岩石の审判8a3631
2013-03-07 · TA获得超过3822个赞
知道小有建树答主
回答量:1513
采纳率:33%
帮助的人:958万
展开全部
把已经生成的随机数存入一个数组,然后再次生成随机数时,与数组的元素比较,若相等,重新生成,若不相等,直接存入数组。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小妻丐
2013-03-07 · TA获得超过112个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:166万
展开全部
random r=new random();
int num=r.next(1,15);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
593758685
2013-03-07 · TA获得超过276个赞
知道小有建树答主
回答量:377
采纳率:100%
帮助的人:226万
展开全部
先定义1-15的集合,然后随机从该集合中拿出一个来放到一个数组中,最后再把这个数组遍历下
List<int> list=new List<int>();
for(int i=1;i<=15;i++)
list.add(i);

int[] arr=new int[15];
Random rand=new Random();

for(i=15;i>1;i--)
{
int randNum=list[rand.Next(i)];
list.Remove(randNum);
arr[i-1]=randNum;
}

意思知道下,手写代码可能有错。还有错误自己在改下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式