C#如何实现用随机函数取出1到20之间的所有数且不重复?

2024-12-11 15:27:30
推荐回答(4个)
回答1:

可以将1-20存入列表中,循环,第一次产生1-20的随机数,取出列表中对应随机数位置的数,并将此数在列表中删除,第二次产生1-19的随机数,一次类推即可。。。

回答2:

网上复制一段不用List的代码略作修改,供你参考:
int tt, i = 0, k = 0, p;
int[] array = new int[20];
Random r = new Random();
array[0]=r.Next(0,20);

while (i < 20)
{
p = 0;
tt = r.Next(0, 20);
for (k = 0; k < i;k++ )
{
if (tt == array[k]) p = 1;
}

if (p == 0)
{
array[i] = tt;
i++;
}
}

回答3:

Random ra = new Random();
List list = new List();
while (list.Count < 20)
{
int i = ra.Next(1, 21);
if (!list.Contains(i))
list.Add(i);
}

回答4:

        static void Main(string[] args)

        {

            List numbers = new List();

            Random r = new Random();

            for (int i = 1; i < 21; i++)

            {

                numbers.Insert(r.Next(0, numbers.Count), i);

            }

        }