Chinaunix首页 | 论坛 | 博客
  • 博客访问: 541162
  • 博文数量: 78
  • 博客积分: 1913
  • 博客等级: 上尉
  • 技术积分: 829
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-14 21:29
文章分类

全部博文(78)

文章存档

2011年(27)

2010年(26)

2009年(20)

2008年(5)

我的朋友

分类: C/C++

2011-01-12 17:29:06

原型: 
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) |
给主人留下些什么吧!~~