日期:2014-05-19  浏览次数:21535 次

C#如何实现,在20个数字中随机选出5个出来
比如:在1-20这20个号码中,任意随机的取出5个出来
请问这个怎么实现呢
谢谢,实在很感谢

------解决方案--------------------
用Random
随机数产生
------解决方案--------------------
Random rdm1 = new Random(unchecked((int)DateTime.Now.Ticks));
int i = rdm1.Next(1, 20);
做5次
------解决方案--------------------
Random rdm1 = new Random(unchecked((int)DateTime.Now.Ticks));
int i = rdm1.Next(1, 20);int i1 = rdm1.Next(1, 20);int i2 = rdm1.Next(1, 20);int i3 = rdm1.Next(1, 20);int i4 = rdm1.Next(1, 20);


------解决方案--------------------
Random randObj = new Random();

for (int j = 0; j < 5; j++)
Console.Write( "{0,2} ", randObj.Next(1, 20));
Console.WriteLine();
------解决方案--------------------
这个20个号码放入到一个20长度的数组中,然后Randome()五次出来,每一次将刚才取出来的数据,从原数组中删除,这样可以做到不重复的取出来5个随机号码出来
------解决方案--------------------
Random.Next(1, 20)

得到的数字放到数组中,重复得到随机,查看数组中是否有重复,没有添加。有则重新得随机
------解决方案--------------------
把20个随机数生成好,放到容器(数组?),
然后随机生成5个数,根据定义的规则匹配到生成好的20个数中,即:
如生成了5个数:
2,8,3,4,19那么就依次取20个数中的第2,8,3,4,19个出来就可以了。
------解决方案--------------------
Random myRan=New Random();
for(int i=0;i <5;i++)
{
Console.WriteLine( "{0} ",myRan.Next(1,20));
}
------解决方案--------------------
//存数据
ArrayList myAL = new ArrayList();
Random rd = new Random();
for (int i = 0; i < 5; i++)
{
while (true)
{
int temp = rd.Next(1,20);
if (!myAL.Contains(temp))
{
myAL.Add(temp);
break;
}
}
}

//取数据
string myStr = " ";
System.Collections.IEnumerator myEnumerator = myAL.GetEnumerator();
while ( myEnumerator.MoveNext() )
{
myStr+=myEnumerator.Current.ToString()+ "\n ";
}
label1.Text =myStr;