关于随机数

9 views
Skip to first unread message

LeoReis

unread,
Nov 19, 2008, 1:35:57 AM11/19/08
to 人生难得几回搏
随机数相关的随机函数 srand rand
如果不调用srand而直接调用rand,得到的随机数序列都是以1位种子产生的
因此一般都会在使用随机数函数rand之前,调用一次srand,并以time(0)的返回值作为参数

但是有一点需要注意的是随机数种子是以线程为单位的,即每个线程都有一个自己的随机数种子。
如果要在不同的线程中调用rand,则需要在各自的线程中调用srand((unsigned int)time(0));
(以上在win32下确认过)

另外,win32下RAND_MAX宏的值是0x00008000,即32768
而linux下RAND_MAX宏的值则大得多,rand函数的返回值也不限于32768

Reply all
Reply to author
Forward
0 new messages