C# 如何生成不重复的1-100随机数。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 如何生成不重复的1-100随机数。相关的知识,希望对你有一定的参考价值。

有两种思路:1、随机生成一个1-100的数,然后判断重复,如果重复再生成一次;
2、创建一个数组,元素内容为1-100,对元素随机排序。
请参考下面的代码
public void GenerateRandomNums()

List list = new List();
Random rand = new Random();
int value;
while (true)

if (list.Count == 20)

Console.WriteLine("U should get the 20 random numbers. ");
break;

value = rand.Next(1, 21);
if (!list.Contains(value))

list.Add(value);


foreach (int temp in list)

Console.WriteLine("Num:0.", temp);



第二种思路:
int[] a = 1, 2, 4, 5, 3, 6, 7, 8 ;
int[] b = a.OrderBy(x => Guid.NewGuid()).ToArray();
foreach (int v in b)
Console.WriteLine(v);
Console.ReadKey();
参考技术A             Random r = new Random();
            int[] nums = Enumerable.Range(1, 100)
                .OrderBy(x => r.Next()).ToArray();
            foreach (int n in nums)
                Console.WriteLine(n);

本回答被提问者采纳
参考技术B x是什么?

在java中,如何输出不重复的几个随机数

在Java中,如果输出的随机数的个数比较少,为避免生成的随机数发生重复,可以把每个生成的输逐个进行比较。

以在[1.36]生成5个不重复的随机整数为例,如果出现重复,需重新生成

首先第一步,生成5个在[1,36]范围的随机整数

技术图片

然后把生成的随机数逐个进行比较

技术图片

如果要求生成的随机数比较多,显然通过逐个比较难以完成,此时需要用for循环变量来生成随机数,然后制定一个数组来储存生成的随机数,然后再比较,详细写法下次更新

以上是关于C# 如何生成不重复的1-100随机数。的主要内容,如果未能解决你的问题,请参考以下文章

C#如何生成随机不重复的数字

我想用JavaScript生成1到100之间的100个不能重复的随机数,不需要排序,只生成100个不

.net 下用C#产生一个永不重复10位随机数

php生成随机数字,范围1-100,每次生成一个数字,可以重复

js生成 1-100 不重复随机数

js生成 1-100 不重复随机数