原型:
int rand(void); //返回一个随机数0 ~ pow(2, sizeof(int))-1
long int random(void); //返回一个随机数0 ~ pow(2, sizeof(long int))-1
void srand(unsigned int seed); //设置rand函数的种子
void srandom(unsigned int seed); //设置random函数的种子
总结:
rand和random的区别就是返回类型不同,int和long int(虽然在普通的32位机上效果是一样的)
使用的rand或者random之前,一般使用time(0) getpid()设置随机种子.否则默认种子就是1,则每次产生的随机数都是一样的
ps:
使用rand或者random生成重复随机数的概率如下:
10万 -----3个
100万-----230个
1000万----23000个
由此可见,重复率随着数量增加出现的概率变得越来越快.
当然,最好我们使用 arc4random(), 范围更大, 无需设置随机种子.
见:http://blog.csdn.net/wave_1102/archive/2009/11/09/4789167.aspx
阅读(3420) | 评论(0) | 转发(0) |