区别

2014-01-30 27 views
0

我是新来的Objective-C和我想知道这些随机数生成器的区别是:区别

int randInt(int min, int max) 
{ 
    return ((arc4random() % max) + min); 
} 

int randInt2(int min, int max) 
{ 
    return (arc4random() % (max - min + 1)) + min; 
} 

int randInt3(int min, int max) 
{ 
    return (arc4random_uniform(max) + min); 
} 

float randFloat(float min, float max) 
{ 
    return (float)arc4random()/UINT32_MAX * (max - min) + min; 
} 

float randFloat2(float min, float max) 
{ 
    return (float)arc4random_uniform(max)/UINT32_MAX * (max - min) + min; 
} 

换句话说,我想知道为什么会有人选择randInt过randInt2或反之亦然。 randInt3好吗?

我也想知道为什么我需要用UINT32_MAX除法randFloat,以及我是否正确使用统一版本的arc4random。

帮助?

回答

1

randIntrandInt3都给出了“min至(max + min)”范围内的值。 randInt3稍好些。

randInt2给出了范围“最小值到最大值”

randFloat给出了范围“最小值到最大值”作为浮动的值的值。

randFloat2是错误的,将总是给出的范围内的值“min至(一些非常小的数目的正上方分钟”。

表达arc4random()/UINT32_MAXrandFloat给出了在范围0.0到1.0的值。