一般来说,我知道我可以通过以下方式获得数组的随机元素:
var myArray = [x, y, z]
let myArrayLength = UInt32(myArray.count)
let myArrayIndex = Int(arc4random_uniform(myArrayLength))
let randomElement = myArray[myArrayIndex]
但是我怎样才能使y是随机元素的可能性是x的两倍而z是随机元素的可能性是y的三倍呢?
注:在x, y和z是CGPoint
s
一个简单的方法是这样重写数组:[x,x,y,z]
。得到x的概率变为0.5,得到y的概率变为0.25,得到z的概率变为0.25。只要尽可能多地重复高概率符号,例如[x, y, y, z, z, z, z]
就可以满足您的要求。