Чтобы развернуть комментарий JohnK.
Рекомендуется использовать следующую функцию для возврата ранжированного случайного числа:
arc4random_uniform(51)
, которое вернет случайное число в диапазоне 0
до 50
.
Затем вы можете добавить свои нижние границы к этому как:
arc4random_uniform(51) + 50
, который будет возвращать случайное число в диапазоне от 50
до 100
.
Причина, по которой мы используем arc4random_uniform(51)
вместо arc4random() % 51
, заключается в том, чтобы избежать по модулю смещения .Это выделено на странице руководства следующим образом:
arc4random_uniform (upper_bound) вернет равномерно распределенное случайное число меньше, чем upper_bound.arc4random_uniform () рекомендуется для таких конструкций, как `` arc4random ()% upper_bound '', так как он избегает «смещения по модулю», когда верхняя граница не является степенью двойки.сгенерированное равномерно распределенное случайное число.