C# 如何生成不重复的1-100随机数。
答案:3 悬赏:70 手机版
解决时间 2021-04-07 01:19
- 提问者网友:温柔港
- 2021-04-06 18:48
C# 如何生成不重复的1-100随机数。
最佳答案
- 五星知识达人网友:逐風
- 2021-04-06 19:28
Random r = new Random();
int[] nums = Enumerable.Range(1, 100)
.OrderBy(x => r.Next()).ToArray();
foreach (int n in nums)
Console.WriteLine(n);
int[] nums = Enumerable.Range(1, 100)
.OrderBy(x => r.Next()).ToArray();
foreach (int n in nums)
Console.WriteLine(n);
全部回答
- 1楼网友:雪起风沙痕
- 2021-04-06 20:28
引用阳光的雷咩咩的回答:
Random r = new Random(); int[] nums = Enumerable.Range(1, 100) .OrderBy(x => r.Next()).ToArray(); foreach (int n in nums) Console.WriteLine(n);x是什么?
Random r = new Random(); int[] nums = Enumerable.Range(1, 100) .OrderBy(x => r.Next()).ToArray(); foreach (int n in nums) Console.WriteLine(n);x是什么?
- 2楼网友:十年萤火照君眠
- 2021-04-06 19:47
有两种思路: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();
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯