Как создавать случайные числа с исключениями, которые не повторяются - PullRequest
0 голосов
/ 28 ноября 2018

Я хотел бы знать, как заставить приложение генерировать случайное число с числами, определенными путем ввода в UITextField, например, между 25 и 35, но которые не повторяются и не могут отображать некоторые числа, также определяемые путем вводав UITextField, например: 28, 29 и 30. Таким образом, при нажатии кнопки он будет отображать числа 25, 26, 27, 31, 32, 33, 34 и 35 (помня об этом, не повторяя)

Я пробовал несколько мест и курсов, но не получил правильного ответа.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Создайте массив ваших чисел и массив чисел, которые вам не нужны

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
    }
}
0 голосов
/ 28 ноября 2018

Создайте набор значений, которые вы хотите включить

let allValues = Set(25...35)

Создайте список значений, которые вы не хотите включать

let exceptions = [28, 29, 30]

Удалите значения, которые вы не хотитеwant

let valuesToUse = values.subtracting(exceptions)

Перемешать порядок

let randomValues = valuesToUse.shuffled()

Теперь вы можете использовать randomValues для предоставления случайного списка желаемых значений, которые не повторяются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...