Ich erstelle zufällig für verschiedene Arrays mit 4 zufälligen Zahlen (1-4). Aber wie stelle ich sicher, dass keine zwei Arrays gleich sind? Beispiel: [1,2,3,4], [4,3,2,1], [1,2,2,1], [1,2,3,4] < - zuerst und zuletzt wurden die gleichen zufällig generiert, wie kann ich überprüfen, ob es zufällig ist und wenn es wieder generiert wird, und wenn es nicht ist, weiter?Swift: Stellen Sie sicher, dass keine zwei Arrays gleich sind
Dies ist mein Code, aber ich glaube nicht, dass es funktioniert, weil ein paar Mal habe ich zwei gleiche Arrays sehen werden ...
func randomNumbersArray(i: UInt32) -> [Int] {
let r = [Int(arc4random_uniform(i) + 1),
Int(arc4random_uniform(i) + 1),
Int(arc4random_uniform(i) + 1),
Int(arc4random_uniform(i) + 1)]
return r
}
func arrays() {
let main = randomNumbersArray(4)
qArray = main
aArray = main
bArray = randomNumbersArray(4)
cArray = randomNumbersArray(4)
dArray = randomNumbersArray(4)
if aArray == bArray || aArray == cArray || aArray == dArray ||
bArray == cArray || bArray == dArray || cArray == dArray {
bArray = randomNumbersArray(4)
cArray = randomNumbersArray(4)
dArray = randomNumbersArray(4)
}
print(aArray)
print(bArray)
print(cArray)
print(dArray)
}
Wenn die Dinge zufällig sind, könnten sie wiederholen - das ist normal, zufälliges Verhalten. Außerdem gibt es nicht viele eindeutige Arrays mit 1-4 in ihnen. Was passiert, wenn Sie ausgehen? –
@LouFranco Nun, es gibt 256 von ihnen, das ist nicht so schlecht, wenn Sie nur 4 benötigen. Technisch könnten Sie nur 4 Zahlen im 0..255 Bereich generieren und die Arrays aus diesen Zahlen generieren (jede zwei Bits stellen eine Ziffer dar) . Es wäre auch völlig möglich, alle Arrays vorgenerieren und dann von ihnen zufällig auswählen. – Sulthan