C# 制作一个包含其他列表中随机数的列表
我对C语言编程非常陌生,我对其他语言有很高的了解 但我不知道我怎么能做到这一点。 我想创建一个包含随机设置顺序号的列表[],但它只能从另一个列表创建数字,例如NumberLis=[0,1]C# 制作一个包含其他列表中随机数的列表,c#,list,C#,List,我对C语言编程非常陌生,我对其他语言有很高的了解 但我不知道我怎么能做到这一点。 我想创建一个包含随机设置顺序号的列表[],但它只能从另一个列表创建数字,例如NumberLis=[0,1] NumberList = [0,1] list = [NumberList(random(0,1))] 我知道如何在python中实现这一点, Python代码,如果有帮助的话,我会尝试做什么 随机输入 NumberList = [0,1] #The set numbers List = [] for i
NumberList = [0,1]
list = [NumberList(random(0,1))]
我知道如何在python中实现这一点,
Python代码,如果有帮助的话,我会尝试做什么
随机输入
NumberList = [0,1] #The set numbers
List = []
for i in range(10):
List.append(NumberList[random.randint(0,1)])
print(List)
我会这样做:
int[] source = new [] { 0, 1, };
var rnd = new Random();
List<int> result =
Enumerable
.Range(0, 100)
.Select(n => source[rnd.Next(0, source.Length)])
.ToList();
要从重复的集合中随机选择固定数量的项目,您只需将索引随机选择到总体中,然后将随机选择的项目添加到结果集中。如果你不想重复,那么我建议使用洗牌。对于这个问题,可以找到一个关于如何实现洗牌算法的非常好的答案 重复的例子
var populationSize = 1000;
var population = Enumerable.Range(0, populationSize); // example - your population could be different
var randomSet = new List<int>();
var setSize = 10;
var random = new Random();
for (var i = 0; i < setSize; ++i)
{
var idx = random.Next(populationSize);
randomSet.Add(population[idx]);
}
有点小林克。下面的代码将接受任何输入列表
Random rand = new Random();
List<int> input = new List<int>() { 1, 54, 4, 3, 7, 8 };
List<int> output = input.Select(x => new {rand = rand.Next(), value = x}).OrderBy(y => y.rand).Select(z => z.value).ToList();
是否要创建一个集合,其中的值以随机顺序从另一个集合中提取,还是从第一个集合中提取一个随机子集?
Random rand = new Random();
List<int> input = new List<int>() { 1, 54, 4, 3, 7, 8 };
List<int> output = input.Select(x => new {rand = rand.Next(), value = x}).OrderBy(y => y.rand).Select(z => z.value).ToList();