美文网首页
Swift 随机数生成

Swift 随机数生成

作者: fordring2008 | 来源:发表于2017-02-05 12:28 被阅读410次

    // 随机数生成

    // arc4random 随机数算法

    let dicFaceCount = 6

    let randomRoll = Int(arc4random()) % dicFaceCount + 1

    print(randomRoll)

    // 这是因为, arc4random所返回的不论在什么平台都是一个 UInt32, 无符号整形,相当于一个 Int64 的 >=0 的部分

    // 而 Int()  在 32位机上装不下 UInt32, 所以在32位机上有时会崩溃

    // 这个函数是上一个的改良版本

    // arc4random_uniform(<#T##__upper_bound: UInt32##UInt32#>)

    // 内部实现是,将 n 作为输入, 将结果归化到 0 到 n-1 之间,只要我们的输入不超过 Int 的方位,就可以避免危险的转换

    let dicFaceCount1: UInt32 = 6

    let randomRoll1 = Int(arc4random_uniform(dicFaceCount1)) + 1

    print(randomRoll1)

    let range = Range(uncheckedBounds: (0, 5))

    let start = range.lowerBound

    let end = range.upperBound

    // 在一个 Range中 随机返回一个 值

    func random(in range: Range) -> Int{   

     let count = UInt32(range.upperBound - range.lowerBound)   

     return Int(arc4random_uniform(count)) + range.lowerBound}

    for _ in 0..<10 {    

    let range = Range(1...6)

    print(random(in: range))

    }

    相关文章

      网友评论

          本文标题:Swift 随机数生成

          本文链接:https://www.haomeiwen.com/subject/hyfeittx.html