Należy użyć arc4random
dla generatora liczb losowych.
#include <stdlib.h>
u_int32_t
arc4random(void);
Funkcja arc4random() wykorzystuje klucz stosowany przez generator strumienia szyfru arc4, który wykorzystuje 8 * 8 S-8-bitowe pola. S-Boxy mogą być w około (2 * 1700) stany. Funkcja arc4random() zwraca liczby losowe o wartości od 0 do (2 * 32) -1 i dlatego ma dwa razy większy zakres od rand i losowych.
-(BOOL)foo4random
{
u_int32_t randomNumber = (arc4random() % ((unsigned)RAND_MAX + 1));
if(randomNumber % 5 ==0)
return YES;
return NO;
}
Aby uzyskać więcej informacji na arc4random
typ
człowiek arc4random
na terminalu.
To ma tendencję modulo. – Alexander
To rozwiązanie daje fałszywe wartości większe niż wartości rzeczywiste, np. 1:10 dla wartości fałszywych, a to dlatego, że udział w tworzeniu 5,10,15,20,25,30 jest podobny do 6/30, co nie ma żadnego sensu. –