C# winfrom 随机生成5个在0 到50直接的随机数,切不重复,怎么实现啊

C# winfrom 随机生成5个在0 到50之间的随机数,且不重复,怎么实现啊
2025-03-22 10:04:23
推荐回答(3个)
回答(1):

   主要函数: 
public List getnum()
        {
            Random r = new Random();
            List result = new List();
            int a;
            for (int i = 0; i < 5; i++)     //获得5个随机数
            {
                a = r.Next(0, 50);  //设置范围0~50
                if (i == 0)
                {
                    result.Add(a);
                }
                else
                {
                    if (result.IndexOf(a) > 0)
                    {
                        i = i - 1; //有重复值,重新再来一次
                    }
                    else
                    {
                        result.Add(a);  //无重复值,+1
                    }
                }
            }
            return result;
        }

回答(2):

Random r = new Random();
Dictionary dic = new Dictionary();
while (dic.Count + 1 < 6)
{
int tmp = r.Next(0, 50);
if (!dic.ContainsKey(tmp))
dic.Add(tmp, 0);
}
这个不是正态随机

回答(3):

            Random r = new Random();
            Dictionary dic = new Dictionary();
            while (dic.Count + 1 < 5) 
            {
                int tmp = r.Next(0, 50);
                if (!dic.ContainsKey(tmp))
                    dic.Add(tmp, 0);
            }