读书人

如何看不到别人回的帖子,只好再开一贴

发布时间: 2012-04-15 18:39:21 作者: rapoo

怎么看不到别人回的帖子,只好再开一贴:还是生成不重复随机数和固定数组乱序的问题
1、固定数组乱序排列:
设数组包括1-999的所有整数,怎样将该数组乱序排列

2、生成指定数量的4位随机数,该数量少于9000(9999-1000+1)

private List<int> genRandomCode(int num)
{
Random ran = new Random();//实例一个随机器
List<int> list = new List<int>(num);//定义一个指定容量的链表
int i = 1;
while (i <= num)
{
int temp = ran.Next(1000, 10000)
if (!list.Contains(temp))//如果链表中不存在这个数
{
list.Add(temp);//链表中添加该数
i++;
}
}
return list;
}

这个方法总觉得不太可靠,
一是list是不是比较占内存,用数组或字典能不能好点
二是当要求生成的数量比较大时,random.next如果总是找到重复的值,该方法的结束时间是不是变得不可预测


[解决办法]

C# code
public List<int> GenerateNumber(){        Random  random = new Random();        List<int> number = new List<int>(9000);        List<int> result = new List<int>(9000);        for (int i = 0; i < 10; i )        {                number.Add(i);        }        for (int i = 0; i < 4; i )        {                int tempNum = random.Next(0, number.Count);                result.Add(number[tempNum]);                number.RemoveAt(tempNum);        }        return result;} 

读书人网 >C#

热点推荐