我有一個由 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]
不知道接下來要做什么...
uj5u.com熱心網友回復:
像這樣的事情可能會有所幫助:
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 {
$0.intersection(mainSet).count >= 2
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/338938.html
下一篇:UML 活動圖
