当(-1)^ k为1且其-1-> k随机生成时,我想发生一些事情。
我尝试了这个,但是没有用
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
leftOrRight始终为NaN。
答案 0 :(得分:5)
您正在尝试以相等的概率生成CGFloat
或-1.0
的{{1}}值。为此,您可以生成1.0
或0
的值(使用1
并对其进行测试,然后再分配arc4random_uniform(2)
值:
CGFloat
在 Swift 4.2 (Xcode 10)中,您可以使用let leftOrRight: CGFloat = arc4random_uniform(2) == 0 ? 1 : -1
对其进行简化:
Bool.random()
答案 1 :(得分:2)
如果您使用的是Swift 4 / 4.1 ,那么应该可以解决问题:
let leftOrRight = 2 * (Double(arc4random_uniform(2)) - 0.5)
如果您使用的是Swift 4.2 ,则可以使用:
let array: [CGFloat] = [-1, 1]
let leftOrRight: CGFloat = array.randomElement()
如果您希望leftOrRight
是随机布尔值:
let leftOrRight: Bool = Bool.random()
有关Swift 4.2的更多内容,请查看here。