У меня есть два текстовых поля, и пользователь может ввести 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?