1. random()
random()不是一个真正的伪随机数发生器,因此在使用前必须初始化随机种子,否则每次生成的随机数都是相同的。它会产生一个[0,RAND_MAX)之间的一个整数。
产生一个[0,100)的数字
srandom((unsigned)time(NULL));
int num = 100 * random()/RAND_MAX;
目前已经不推荐使用random()函数了
2. arc4random()
arc4random()是一个真正的伪随机算法,不需要随机数种子。
产生一个[0,100)的数字
int num = arc4random()%100;
3. arc4random_uniform()
使用arc4random()产生指定的随机数还需要做取模运算,而arc4random_uniform()则不需要,看下面函数定义,传入一个上边界数字
uint32_t arc4random_uniform(uint32_t __upper_bound)
可产生一个[0, __upper_bound-1)的数字
int num = arc4random_uniform(100);
网友评论