9 个解决方案
#1
int n = 100;
var num = Enumerable.Range(1, n)
.Select(x => new { v = x, k = Guid.NewGuid().ToString() }).ToList()
.OrderBy(x => x.k)
.Select(x => x.v)
.Take(4).ToList();
foreach (var i in num)
{
Console.WriteLine(i);
}
var num = Enumerable.Range(1, n)
.Select(x => new { v = x, k = Guid.NewGuid().ToString() }).ToList()
.OrderBy(x => x.k)
.Select(x => x.v)
.Take(4).ToList();
foreach (var i in num)
{
Console.WriteLine(i);
}
#2
生成一个集合,随机索引号.提出该索引号的值,并将将其移除集合.重复4次
#3
int a=100;
Random random = new Random();
for(int i=1;i<6;i++){
int num = random.Next(a);//还有其他的重载,自己看下那个合适自己用
Console.WriteLine(num);
}
Random random = new Random();
for(int i=1;i<6;i++){
int num = random.Next(a);//还有其他的重载,自己看下那个合适自己用
Console.WriteLine(num);
}
#4
我想这么用,就是不要用foreach来循环输出出来,因为我想直接取着些数来赋值,比如随机出来的数字是1,2,3,4。。。我想直接就是a=1,b=2,c=3,d=4...
#5
int n = 100;
var num = Enumerable.Range(1, n)
.Select(x => new { v = x, k = Guid.NewGuid().ToString() }).ToList()
.OrderBy(x => x.k)
.Select(x => x.v)
.Take(4).ToList();
int a = num[0];
int b = num[1];
int c = num[2];
int d = num[3];
var num = Enumerable.Range(1, n)
.Select(x => new { v = x, k = Guid.NewGuid().ToString() }).ToList()
.OrderBy(x => x.k)
.Select(x => x.v)
.Take(4).ToList();
int a = num[0];
int b = num[1];
int c = num[2];
int d = num[3];
#6
4个插板random(N-3)
#7
Random(C(n,4)) 然后反转为对应的4个数,n比较大时需要考虑C(n,4) > long.Max的情况,不过n比较大时随意Random应该不容易出现碰撞。因此仅限于C(n,4) < int.max时,采用这种方法,否则直接Random,出现了碰撞就再多Random一次好了。
#8
。。。4个不同的数字。 你就直接把生成出来的数字放到一个集合里面。 然后判断里面是不是有重复的不就可以了。。。
#9
你随机生成一个数字 保存到数组里面 每次都去判断这个数字是否在数组里面就好了啊 如果不在就算了 当数组的长度到达3的时候、就说明已经产生了4个不重复的数字了
#1
int n = 100;
var num = Enumerable.Range(1, n)
.Select(x => new { v = x, k = Guid.NewGuid().ToString() }).ToList()
.OrderBy(x => x.k)
.Select(x => x.v)
.Take(4).ToList();
foreach (var i in num)
{
Console.WriteLine(i);
}
var num = Enumerable.Range(1, n)
.Select(x => new { v = x, k = Guid.NewGuid().ToString() }).ToList()
.OrderBy(x => x.k)
.Select(x => x.v)
.Take(4).ToList();
foreach (var i in num)
{
Console.WriteLine(i);
}
#2
生成一个集合,随机索引号.提出该索引号的值,并将将其移除集合.重复4次
#3
int a=100;
Random random = new Random();
for(int i=1;i<6;i++){
int num = random.Next(a);//还有其他的重载,自己看下那个合适自己用
Console.WriteLine(num);
}
Random random = new Random();
for(int i=1;i<6;i++){
int num = random.Next(a);//还有其他的重载,自己看下那个合适自己用
Console.WriteLine(num);
}
#4
我想这么用,就是不要用foreach来循环输出出来,因为我想直接取着些数来赋值,比如随机出来的数字是1,2,3,4。。。我想直接就是a=1,b=2,c=3,d=4...
#5
int n = 100;
var num = Enumerable.Range(1, n)
.Select(x => new { v = x, k = Guid.NewGuid().ToString() }).ToList()
.OrderBy(x => x.k)
.Select(x => x.v)
.Take(4).ToList();
int a = num[0];
int b = num[1];
int c = num[2];
int d = num[3];
var num = Enumerable.Range(1, n)
.Select(x => new { v = x, k = Guid.NewGuid().ToString() }).ToList()
.OrderBy(x => x.k)
.Select(x => x.v)
.Take(4).ToList();
int a = num[0];
int b = num[1];
int c = num[2];
int d = num[3];
#6
4个插板random(N-3)
#7
Random(C(n,4)) 然后反转为对应的4个数,n比较大时需要考虑C(n,4) > long.Max的情况,不过n比较大时随意Random应该不容易出现碰撞。因此仅限于C(n,4) < int.max时,采用这种方法,否则直接Random,出现了碰撞就再多Random一次好了。
#8
。。。4个不同的数字。 你就直接把生成出来的数字放到一个集合里面。 然后判断里面是不是有重复的不就可以了。。。
#9
你随机生成一个数字 保存到数组里面 每次都去判断这个数字是否在数组里面就好了啊 如果不在就算了 当数组的长度到达3的时候、就说明已经产生了4个不重复的数字了