2 つのテキスト ボックスがあり、ユーザーは 2 つの正の整数を入力できます (Objective-C を使用)。目標は、2 つの数値の間のランダムな値を返すことです。
「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 の使用方法を変更する必要がありますか?