当前位置:  开发笔记 > IOS > 正文

在Swift中创建随机Bool

如何解决《在Swift中创建随机Bool》经验,为你挑选了3个好方法。

我需要在我的游戏中创建一个随机的bool值,在Swift中.

基本上,如果是(或1),则生成一个对象,如果否(或0),则生成另一个对象.

到目前为止,在这里查看这个问题和类似的问题,我发现了这个:

let randomSequenceNumber = Int(arc4random_uniform(2))

现在它有效,但似乎偏向于0对我来说......就像荒谬的偏见......

这就是我如何使用该值:

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

有没有更好的方法来使用随机bool值来实现它?那不是偏向某个值吗?

更新

在10,000次通话中产生了一个实验来看看有多少1人的比赛0:

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

user3441734.. 49

import Foundation

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

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

对于更先进的发电机,理论可在此处获得

在此处了解伯努利(或二项式)分布的基本知识



1> user3441734..:
import Foundation

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

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

对于更先进的发电机,理论可在此处获得

在此处了解伯努利(或二项式)分布的基本知识



2> Warif Akhand..:

Xcode 10与Swift 4.2

看起来Apple工程师正在倾听

let randomBool = Bool.random()



3> Adam Waite..:
extension Bool {
    static func random() -> Bool {
        return arc4random_uniform(2) == 0
    }
}

// usage:
Bool.random()

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有