Подтвердить что ты не робот

Создание случайного Bool в Swift 2

Поэтому мне нужно создать случайное значение bool в моей игре, Swift 2

В основном, если Да (или 1), создайте один объект, если нет (или 0), создайте другой.

До сих пор, рассматривая этот вопрос и аналогичный здесь, я нашел это:

 let randomSequenceNumber = Int(arc4random_uniform(2))

Теперь это работает, но кажется, что смещение 0 мне... как смехотворное смещение...

Вот как я тогда использую значение:

if(randomSequenceNumber == 0)
    //spawn object A
else
    //spawn object B

Есть ли лучший способ реализовать это с использованием случайного значения bool? Это не смещение к определенному значению?

Обновление

Немного эксперимента, чтобы узнать, сколько 1 vs 0 было создано в 10 000 вызовов:

func experiment() {
    var numbers: [Int] = []
    var tester: Int = 0
    var sum = 0

    for i in 0...10000 {
        tester = Int(arc4random_uniform(2))
        numbers.append(tester)
        print(i)
    }

    for number in numbers {
        sum += number
    }

    print("Total 1's: ", sum)
}

Test 1: Console Output: Total 1's: 4936
Test 2: Console Output: Total 1's: 4994
Test 3: Console Output: Total 1's: 4995
4b9b3361

Ответ 1

import Foundation

func randomBool() -> Bool {
    return arc4random_uniform(2) == 0
}

for i in 0...10 {
    print(randomBool())
}

для более продвинутого генератора теория доступна здесь

для базового понимания проверки распределения Бернулли (или биномиального) здесь

Ответ 2

extension Bool {
    static func random() -> Bool {
        return arc4random_uniform(2) == 0
    }
}

// usage:
Bool.random()