关于一道 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
Posted on 2011-01-15 23:13 Learn more 阅读(1396) 评论(2) 编辑 收藏 举报如题:有两个思路,
思路一,循环,当数组里面已经存在就随机到下一个,直到没有重复为止,其中可以用一个哈希表来查看是否重复;
思路二:把集合一百个数存起来,然后随机一个数,把它加到数组,并从集合中把它删掉;
思路一:
Random rd = new Random(100);
int[] rdNumber = new int[100];
Hashtable ht = new Hashtable();
for (var i = 0; i < 100; i++)
{
int next = rd.Next(100);
while (ht.Contains(next))
{
next = rd.Next(100);
}
ht.Add(next, 0);
rdNumber[i] = next;
}
思路二
Random rd = new Random(100);
int[] rdNumber = new int[100];
List<int> lt = new List<int>(100);
for (var i = 0; i < 100; i++)
{
lt.Add(i);
}
for (var i = 0; i < 100; i++)
{
int next = rd.Next(lt.Count);
rdNumber[i] = lt[next];
Console.WriteLine(lt[next]);
lt.Remove(lt[next]);
}
各位博友如有其它思路,请在回复贴出,不胜感激。