我有两个文本框,用户可以输入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));
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我输入值0和3,它似乎工作得很好.但是,如果我使用数字10和15,我仍然可以为"rndValue"获得低至1.0000000或2.000000的值.
我是否需要详细说明我的算法,还是需要更改使用arc4random的方式?