C# 如何生成不重复的1-100随机数。
3个回答
展开全部
有两种思路: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();
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();
展开全部
Random r = new Random();
int[] nums = Enumerable.Range(1, 100)
.OrderBy(x => r.Next()).ToArray();
foreach (int n in nums)
Console.WriteLine(n);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用阳光的雷咩咩的回答:
Random r = new Random(); int[] nums = Enumerable.Range(1, 100) .OrderBy(x => r.Next()).ToArray(); foreach (int n in nums) Console.WriteLine(n);
Random r = new Random(); int[] nums = Enumerable.Range(1, 100) .OrderBy(x => r.Next()).ToArray(); foreach (int n in nums) Console.WriteLine(n);
展开全部
x是什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询