我有两个文本框,用户可以输入2个正整数(使用Objective-C)。目标是在这两个数字之间返回一个随机值。在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,那么对于“rndValue”,我仍然可以获得低至1.0000000或2.000000的值。
我是否需要阐述我的算法,还是需要改变我使用arc4random的方式?
http://iphonedevelopment.blogspot.com/2008/10/random-thoughts-rand-vs-arc4random.html – Andrew 2012-03-13 04:32:35
你的括号是错误的。删除'*'后面的左括号和';'前面的右括号。尽管你仍然有四舍五入的问题。 – 2012-03-13 04:34:53
通用公式'minValue +((maxValue - minValue)* rnd())'其中'rnd()'返回0.0到1.0之间的随机浮点值将返回您正在查找的值。我把它留给你转换成Obj-C并优化它以适应你的需求。 – 2012-03-13 04:34:58