如何创建带有例外且不会重复的随机数

时间:2018-11-28 15:18:26

标签: swift

我想知道如何使应用程序生成一个随机数,该随机数的数字是通过在UITextField中键入(例如,介于25到35之间)确定的,但是该数字不会重复且无法显示某些数字,这也是通过键入确定的在UITextField中,例如:28、29和30。 因此,按下按钮,他将显示数字25、26、27、31、32、33、34和35(记住,不再重复)

我尝试了几个地方和课程,但是没有得到有效的答案。

2 个答案:

答案 0 :(得分:0)

创建一组要包含的值

let allValues = Set(25...35)

创建您不想包含的值列表

let exceptions = [28, 29, 30]

删除不需要的值

let valuesToUse = values.subtracting(exceptions)

随机播放订单

let randomValues = valuesToUse.shuffled()

您现在可以使用randomValues来提供一个不重复的所需值的随机列表。

答案 1 :(得分:0)

创建一个数字数组和一个不需要的数字

let array1 = Array(25...35)
let array2 = Array(28...30)

删除您不想用来创建最终数组的数字

let correctArray = Array(Set(array1).subtracting(array2))

此后,使该函数可以不重复使用随机数

func extract() {
    let count = correctArray.count

    while count > 1 {
         let randomNumber = Int.random(in: 0 ... count)
         let extractedNumber = correctArray[randomNumber]
         correctArray[count] = correctArray[randomNumber]
         count -= 1
    }
}