Swift 随机数生成

// 随机数生成

// 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 随机数生成)