Quindi ho bisogno di creare un valore booleano a caso nel mio gioco, in Swift 2
Creazione di Bool casuale a Swift 2
E 'in sostanza, se Yes (o 1), generare un oggetto, se No (o 0) , genera l'altro.
Finora, guardando this question e uno simile qui, ho trovato questo:
let randomSequenceNumber = Int(arc4random_uniform(2))
Ora funziona, ma sembra pregiudizi a 0 per me ... come ridicolmente bias ...
questo è come mi sto quindi utilizzando il valore:
if(randomSequenceNumber == 0)
//spawn object A
else
//spawn object B
c'è un modo migliore per implementare questo utilizzando un valore bool casuale? Non è un pregiudizio per un certo valore?
Aggiornamento
un po 'di un esperimento per vedere erano state generate quanti 1
's vs 0
' s in 10.000 chiamate:
func experiment() {
var numbers: [Int] = []
var tester: Int = 0
var sum = 0
for i in 0...10000 {
tester = Int(arc4random_uniform(2))
numbers.append(tester)
print(i)
}
for number in numbers {
sum += number
}
print("Total 1's: ", sum)
}
Test 1: Console Output: Total 1's: 4936
Test 2: Console Output: Total 1's: 4994
Test 3: Console Output: Total 1's: 4995
Ho provato ad utilizzare tale funzione in un parco giochi contando il numero di zero e uno risultati per 10.000 chiamate. Sicuramente non vedo il pregiudizio che stai vivendo. (Più come +/- 1,2% in entrambe le direzioni) Ci sono altre condizioni nella tua app che potrebbero influenzare il risultato? –
Davvero? Forse sembra solo un pregiudizio ... forse, non è abbastanza casuale (o abbastanza distribuito abbastanza) se sai cosa intendo :( – Reanimation
Provalo! Vedi se ottieni lo stesso risultato nel tuo ambiente. –