c#随机生成两个整数集合,每组包含50个范围在 100,10000)之间的互不相同的整数,分别求出这 两个集合的并、交、差。
时间: 2024-09-07 21:03:56 浏览: 42
C#实现在两个数字之间生成随机数的方法
5星 · 资源好评率100%
在C#中,我们可以使用`System.Collections.Generic`命名空间下的`Random`类以及`List<T>`来生成这两个整数集合,并利用LINQ库来计算它们的并集、交集和差集。以下是详细的步骤:
首先,我们需要创建一个生成随机数的函数:
```csharp
using System;
using System.Linq;
using System.Collections.Generic;
public class RandomIntegerGenerator
{
private static Random random = new Random();
public static List<int> GenerateRandomNumbers(int min, int max, int count)
{
var numbers = new List<int>();
while (numbers.Count < count)
{
int number = random.Next(min, max + 1);
if (!numbers.Contains(number))
numbers.Add(number);
}
return numbers;
}
}
```
然后,我们可以生成两个50个元素的集合:
```csharp
List<int> set1 = RandomIntegerGenerator.GenerateRandomNumbers(100, 10000, 50);
List<int> set2 = RandomIntegerGenerator.GenerateRandomNumbers(100, 10000, 50);
```
接下来,我们使用LINQ来计算并集、交集和差集:
```csharp
List<int> union = set1.Concat(set2).ToList(); // 并集
List<int> intersection = set1.Intersect(set2).ToList(); // 交集
List<int> difference1 = set1.Except(set2).ToList(); // set1 中不在 set2 的元素
List<int> difference2 = set2.Except(set1).ToList(); // set2 中不在 set1 的元素
Console.WriteLine($"并集: {union.Count}");
Console.WriteLine($"交集: {intersection.Count}");
Console.WriteLine($"set1 和 set2 的差集(set1 - set2): {difference1.Count}");
Console.WriteLine($"set2 和 set1 的差集(set2 - set1): {difference2.Count}");
```
以上代码将分别打印出两集合的并集、交集及各自的差集大小。
阅读全文