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

2024-12-15 16:05:35
推荐回答(5个)
回答1:

考虑到算法效率~你其实可以用另一种方式来实现~
先生成一个1-15按顺序的数组
然后生成随机变量种子~
每次取一个在数组长度内的随机数
然后取出对应的数值并放到另一个数组中
而存的那十五个数值的数组则把该数值去除~这样十五次就能得到了~
代码如下:
//定义数组~并给出长度
List ilist = new List();;

//设置初始值
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]);
}

回答2:

1、用随机数生成函数生成随机数
2、然后用生成的数字除与15,取余
3、循环上面2步骤,一直到生成15个。

回答3:

把已经生成的随机数存入一个数组,然后再次生成随机数时,与数组的元素比较,若相等,重新生成,若不相等,直接存入数组。

回答4:

random r=new random();
int num=r.next(1,15);

回答5:

先定义1-15的集合,然后随机从该集合中拿出一个来放到一个数组中,最后再把这个数组遍历下
List list=new List();
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;
}

意思知道下,手写代码可能有错。还有错误自己在改下。