如何确保生成的随机数不等于下一个生成的数字?
我每按一次button都会产生一个随机数(只有0-2)。 但我不希望它连续两次生成相同的数字。 这是我做的,但它不工作。
var currentNumber:Int = 5 var randomNumber:Int = 0 do { randomNumber = Int(arc4random_uniform(UInt32(3))) } while randomNumber == currentNumber currentNumber = randomNumber
你需要使randomNumber
成为ViewController
一个属性,以便在按下button之间记住它。 每次只有2个有效的随机数字,因此生成一个0
到1
范围内的数字,如果它与您以前的数字相匹配,则将其更改为2
:
class ViewController: UIViewController { // Give randomNumber an initial value var randomNumber = Int(arc4random_uniform(UInt32(3))) @IBAction func buttonPressed(button: UIButton) { let currentNumber = randomNumber randomNumber = Int(arc4random_uniform(UInt32(2))) if currentNumber == randomNumber { randomNumber = 2 } } }
这样每个button按下只需要一个随机数就可以了。
请注意,如果您阻止同一个数字连续出现两次,那么您的序列不再是随机/伪随机数。 但是,如果必须的话,您可以将最新的值与之前的值进行比较,然后重试,直到它们不同。