Tha*_*nks 6 iphone cocoa-touch objective-c
我有一个由两个浮点数组成的区间,需要在两个浮点数定义的区间之间的某个区域生成20个随机数.
让我们说,例如:
float a = 12.49953f
float b = 39.11234f
float r = //best way to get best randomly numbers between a and b
Run Code Online (Sandbox Code Playgroud)
随机数可以是== a和== b.你会建议什么?我知道所有计算机和语言都存在随机数问题,并且有很多方法可以生成它们.但我没有目标c的经验.
非常重要的是,在循环中生成的20个数字的一个块中生成的数字不相同.我想为此我会创建一个方法,将数字放在一个数组中,并检查生成的数字是否与数组中的所有其他数字不同,如果不是,我会生成另一个.
我试过这个:
CGFloat r = 1 + arc4random()%5;
但这只会产生整数,大部分时间我会得到相同随机数的2倍.
试试这个
float a = 12.49953f;
float b = 39.11234f;
int startVal = a*10000;
int endVal = b*10000;
srandom((unsigned)(mach_absolute_time() & 0xFFFFFFFF));
int randomValue = startVal+ (random() % (endVal - startVal));
float r = (float)randomValue / 10000.0f;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1384 次 |
| 最近记录: |