用c#写随机生成两个整数集合,每组包含50个范围在[100,10000)之间的互不相同的整数,分别求出这两个集合的并、交、差。
时间: 2024-09-07 13:03:57 浏览: 52
1.给出一个整数数组,求其中任意两个元素之差的最大值。
5星 · 资源好评率100%
在C#中,你可以使用`List<int>`类来创建整数集合,并使用`Enumerable.Range`来生成初始的随机数范围。然后,可以使用LINQ的`Intersect`、`Except`和`Union`方法来求出两个集合的交集、差集和并集。以下是实现这一功能的一个示例代码:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
public class RandomNumberSets
{
public static void Main()
{
Random rand = new Random();
HashSet<int> set1 = new HashSet<int>();
HashSet<int> set2 = new HashSet<int>();
// 生成两个包含50个范围在[100,10000)之间互不相同整数的集合
while (set1.Count < 50 || set2.Count < 50)
{
int num1 = rand.Next(100, 10000);
int num2 = rand.Next(100, 10000);
if (!set1.Contains(num1))
{
set1.Add(num1);
}
if (!set2.Contains(num2))
{
set2.Add(num2);
}
}
// 求两个集合的并集、交集和差集
var unionSet = set1.Union(set2); // 并集
var intersectSet = set1.Intersect(set2); // 交集
var differenceSet1 = set1.Except(set2); // 第一个集合相对于第二个集合的差集
var differenceSet2 = set2.Except(set1); // 第二个集合相对于第一个集合的差集
// 输出结果
Console.WriteLine("集合1: " + string.Join(", ", set1));
Console.WriteLine("集合2: " + string.Join(", ", set2));
Console.WriteLine("并集: " + string.Join(", ", unionSet));
Console.WriteLine("交集: " + string.Join(", ", intersectSet));
Console.WriteLine("集合1相对于集合2的差集: " + string.Join(", ", differenceSet1));
Console.WriteLine("集合2相对于集合1的差集: " + string.Join(", ", differenceSet2));
}
}
```
在这段代码中,我们使用了`HashSet<int>`来存储集合,因为`HashSet`不允许重复的元素,并且可以快速判断元素是否存在以及进行集合操作。接着,我们使用`while`循环来确保每个集合都填充了50个随机生成的不重复整数。最后,我们使用LINQ方法来求解并集、交集和差集,并将它们输出。
阅读全文