好的,我了解了您的问题。从 C# 中的加权列表中选择 x 个随机元素,我们可以使用以下代码来实现:
Random random = new Random();
List<int> weights = new List<int>() { 1, 2, 3, 4, 5 };
int numberOfElements = 10;
int x = random.Next(numberOfElements);
int chosenElement = weights[x - 1];
上述代码中,我们先创建了一个 Random 对象,然后创建了一个包含 5 个元素的加权列表。接下来,我们使用 random.Next()
方法来生成一个 1 到 5 之间的随机整数,该整数表示我们要选择的元素在加权列表中的位置。最后,我们将该元素返回并将其添加到我们的最终结果列表中。
以下是一个完整的代码示例,用于从 C# 中的加权列表中选择 x 个随机元素:
using System;
using System.Collections.Generic;
using System.Linq;
class RandomWeightedList
{
public static void Main()
{
Random random = new Random();
List<int> weights = new List<int>() { 1, 2, 3, 4, 5 };
int numberOfElements = 10;
int x = random.Next(numberOfElements);
int chosenElement = weights[x - 1];
List<int> result = new List<int>();
for (int i = 0; i < numberOfElements; i++)
{
int randomIndex = random.Next(weights.Count);
int element = weights[randomIndex];
result.Add(element);
weights.RemoveAt(randomIndex);
}
Console.WriteLine("Chosen element: " + chosenElement);
Console.WriteLine("Randomly chosen elements: " + string.Join(", ", result));
}
}
上述代码中,我们使用了一个 List 来存储选中的元素,以及一个 List 来存储每个随机元素对应的权重。在生成随机数之后,我们遍历加权列表,将每个随机元素添加到结果列表中,并删除已经添加到结果列表中的元素,以避免重复添加。最后,我们将选中的元素和随机元素列表一起输出到控制台。
希望这个代码示例能够帮助您实现您的需求。如果您有任何其他问题或需要更多帮助,请随时告诉我。
领取专属 10元无门槛券
手把手带您无忧上云