si dovrebbe usare arc4random
per il generatore di numeri casuali.
#include <stdlib.h>
u_int32_t
arc4random(void);
La funzione arc4random() utilizza il generatore di flusso della chiave dipendenze cifrario ARC4, che utilizza 8 * 8 8 bit S-Box. Le S-Box possono essere in circa (2 * 1700) stati. La funzione arc4random() restituisce pseudo- numeri casuali nell'intervallo da 0 a (2 * 32) -1 e pertanto ha il doppio del raggio di rand e casuale.
-(BOOL)foo4random
{
u_int32_t randomNumber = (arc4random() % ((unsigned)RAND_MAX + 1));
if(randomNumber % 5 ==0)
return YES;
return NO;
}
Per ulteriori informazioni su arc4random
tipo
uomo arc4random
sul morsetto.
fonte
2012-02-06 12:16:22
Questo ha il bias del modulo. – Alexander
Questa soluzione produce valori falsi più di valori veri, qualcosa come 1:10 per valore falso e questo perché la percentuale di fare 5,10,15,20,25,30 è come 6/30 che non ha alcun senso –