求高手,C#,如何生成15个1-15之间的不重复的随机数???
5个回答
展开全部
考虑到算法效率~你其实可以用另一种方式来实现~
先生成一个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]);
}
先生成一个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]);
}
展开全部
1、用随机数生成函数生成随机数
2、然后用生成的数字除与15,取余
3、循环上面2步骤,一直到生成15个。
2、然后用生成的数字除与15,取余
3、循环上面2步骤,一直到生成15个。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把已经生成的随机数存入一个数组,然后再次生成随机数时,与数组的元素比较,若相等,重新生成,若不相等,直接存入数组。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
random r=new random();
int num=r.next(1,15);
int num=r.next(1,15);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先定义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;
}
意思知道下,手写代码可能有错。还有错误自己在改下。
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;
}
意思知道下,手写代码可能有错。还有错误自己在改下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询