我正在开发一个函数,我必须创建一个随机布尔值的数组,我迷失了如何在函数内部工作。任何有关这方面的帮助将不胜感激。可悲的是,我只限于关于名称的规则以及我必须如何做到这一点,所以你看到的是我必须使用的一般结构,但我不明白这在逻辑上是如何不是在woking。
func thirdFunction() {
//var numOfTrue = 0
//var numOfFalse = 0
var someTrue = true
var randBools = [Bool] ()
for num in 1...10{
let random = arc4random_uniform(2)
print(random)
if (random == 0){
someTrue = false
randBools.append(someTrue)
} else {
randBools.append(someTrue)
}
}
print (randBools)
}
答案 0 :(得分:2)
这有效:
var array: [Bool] = []
func randomizer() {
var bool: Bool = false
for num in 1...10 {
let random = arc4random_uniform(2)
if random == 0 {
bool = false
} else {
bool = true
}
array.append(bool)
}
print(array)
}
答案 1 :(得分:1)
当随机数为零时设置someTrue = false
,但是当随机数为1时,不要将其设置为true
。因此,在第一个零之后,无论随机数如何,您都会在每次后续迭代中将false放入数组中。
答案 2 :(得分:0)
let result = Array(1...10).map { _ in arc4random_uniform(2) == 1 }
print(result) // [false, true, true, false, true, true, true, false, false, true]
不确定这是否是你想要的。 (感谢Leo纠正我的错误)
根据你的意见:
// Create an array of 1 / 0
let array = Array(1...10).map { _ in arc4random_uniform(2) }
// Convert the array to Bool
randBools = tempArray.map { Bool(Int($0)) }
输出:
print(randBools) // [false, false, true, true, false, false, true, true, true, true]