如何从 arc4random 中排除特定整数
How to exclude specific Integers from arc4random
我想用 arc4random_uniform()
得到一个随机数,但不包括像这样的数组中的数字
var numbersArray = [8,15,10,3,7]
var randomNumber = arc4random_uniform(20)
如果 arc4random_uniform()
给我任何来自 numbersArray
的号码,我希望它得到一个不是来自 numbersArray
的新号码
我试过了
func getRandomGroup() -> Int {
for numbers in numbersArray {
if numbers == randomNumber {
var randomNumber = arc4random_uniform(20)
}
}
return randomNumber
}
但似乎没有效果
Swift 2.0
var numbersArray = [8,15,10,3,7]
var randomNumber : Int
repeat {
randomNumber = Int(arc4random_uniform(20))
} while numbersArray.contains(randomNumber)
print(randomNumber)
在Swift1.x中是在
另一种方法:
var numbersArray: [UInt32] = [8,15,10,3,7]
func getPseudoRandom() -> UInt32 {
let randomNumber = arc4random_uniform(20)
if numbersArray.contains(randomNumber) {
return getPseudoRandom()
}
return randomNumber
}
for _ in 0..<20 {
print(getPseudoRandom())
}
你可以试试:
swift 2.
var numbersArray = [8,15,10,3,7]
func getRandomInArray(arr: [Int]) -> Int{
let indexRandom = Int(arc4random() % UInt32(arr.count))
return arr[indexRandom]
}
getRandomInArray(numbersArray)
我想用 arc4random_uniform()
得到一个随机数,但不包括像这样的数组中的数字
var numbersArray = [8,15,10,3,7]
var randomNumber = arc4random_uniform(20)
如果 arc4random_uniform()
给我任何来自 numbersArray
的号码,我希望它得到一个不是来自 numbersArray
我试过了
func getRandomGroup() -> Int {
for numbers in numbersArray {
if numbers == randomNumber {
var randomNumber = arc4random_uniform(20)
}
}
return randomNumber
}
但似乎没有效果
Swift 2.0
var numbersArray = [8,15,10,3,7]
var randomNumber : Int
repeat {
randomNumber = Int(arc4random_uniform(20))
} while numbersArray.contains(randomNumber)
print(randomNumber)
在Swift1.x中是在
另一种方法:
var numbersArray: [UInt32] = [8,15,10,3,7]
func getPseudoRandom() -> UInt32 {
let randomNumber = arc4random_uniform(20)
if numbersArray.contains(randomNumber) {
return getPseudoRandom()
}
return randomNumber
}
for _ in 0..<20 {
print(getPseudoRandom())
}
你可以试试:
swift 2.
var numbersArray = [8,15,10,3,7]
func getRandomInArray(arr: [Int]) -> Int{
let indexRandom = Int(arc4random() % UInt32(arr.count))
return arr[indexRandom]
}
getRandomInArray(numbersArray)