我有兩個文本框,用戶可以輸入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