Swift: 如何检查多个集合的交集?

Swift: How to check intersection with multiple sets?

我有一个主集,由1到52的5个随机数生成;我想将这个主集与其他 13 个集进行比较,每个集包含 1 到 52 之间的 4 个数字。 有没有办法检查是否有任何 2 组,每组包含来自主组的 2 个数字?

import UIKit

var firstCard = 0
var secondCard = 0
var thirdCard = 0
var fourthCard = 0
var fifthCard = 0

func generateRandomNumber(_ from:Int, _ to:Int, _ qut:Int?) -> [Int]
{
   var myRandomNumbers = [Int]()
   var numberOfNumbers = qut

let lower = UInt32(from)
let higher = UInt32(to+1)
    
    if numberOfNumbers == nil || numberOfNumbers! > (to-from) + 1
    {
        numberOfNumbers = (to-from) + 1
    }
    
    while myRandomNumbers.count != numberOfNumbers
    {
        let myNumber = arc4random_uniform(higher - lower) + lower
        
        if !myRandomNumbers.contains(Int(myNumber))
        {
            myRandomNumbers.append(Int(myNumber))
        }
    }
    
    return myRandomNumbers

}

let myArray = generateRandomNumber(1, 53, 5)

firstCard = myArray[0]
secondCard = myArray[1]
thirdCard = myArray[2]
fourthCard = myArray[3]
fifthCard = myArray[4]


let mainSetA = Set([firstCard, secondCard, thirdCard, fourthCard, fifthCard])

let setB: Set = [1, 2, 3, 4]
let setC: Set = [5, 6, 7, 8]
let setD: Set = [9, 10, 11, 12]
let setE: Set = [13, 14, 15, 16]
let setF: Set = [17, 18, 19, 20]
let setG: Set = [21, 22, 23, 24]
let setH: Set = [25, 26, 27, 28]
let setI: Set = [29, 30, 31, 32]
let setJ: Set = [33, 34, 35, 36]
let setK: Set = [37, 38, 39, 40]
let setL: Set = [41, 42, 43, 44]
let setM: Set = [45, 46, 47, 48]
let setN: Set = [49, 50, 51, 52]

不知道下一步该做什么...

这样的事情可能会有所帮助:

let mainSet = Set([1, 2, 3, 4])

这里我有四组中的三组,主组中至少包含两个项目:

let inputs: [Set<Int>] = [
    Set([9, 8, 7, 1]),
    Set([9, 8, 1, 2]),
    Set([9, 1, 2, 3]),
    Set([9, 0, 3, 4])
]

过滤输入集数组,找到该集与主集之间的交集至少为 2 的任何地方:

let matchingSets = inputs.filter {
    [=12=].intersection(mainSet).count >= 2
}