Генерация случайных чисел между двумя числами в Objective-C

У меня есть два текстовых поля, и пользователь может ввести 2 положительных целых числа (используя Objective-C). Цель состоит в том, чтобы вернуть случайное значение между двумя числами.

Я использовал «man arc4random» и до сих пор не могу понять, что это такое. Я придумал код, но он глючит.

float lowerBound = lowerBoundNumber.text.floatValue;
float upperBound = upperBoundNumber.text.floatValue;
float rndValue;
//if lower bound is lowerbound < higherbound else switch the two around before randomizing.
if(lowerBound < upperBound)
{
    rndValue = (((float)arc4random()/0x100000000)*((upperBound-lowerBound)+lowerBound));
}
else 
{
    rndValue = (((float)arc4random()/0x100000000)*((lowerBound-upperBound)+upperBound));
}

Прямо сейчас, если я введу значения 0 и 3, все будет работать нормально. Однако, если я использую числа 10 и 15, я все равно могу получить такие низкие значения, как 1.0000000 или 2.000000 для «rndValue».

Нужно ли мне разработать свой алгоритм или изменить способ использования arc4random?

49
задан Demasterpl 12 March 2012 в 17:28
поделиться