rand(void)用于产生一个伪随机unsigned int 整数。
srand(seed)用于给rand()函数设定种子。
srand 和 rand 应该组和使用。一般来说,srand 是对 rand 进行设置。
比如:
srand((UINT)GetCurrentTime());
int x = rand() % 100;
是生成 0 到 100 之间的随机数。
srand()是用来初始化随机种子数的,因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的。
用"int x = rand() % 100;"来生成 0 到 100 之间的随机数这种方法是不可取的,比较好的做法是: j=(int)(n*rand()/(RAND_MAX+1.0)) 产生一个0到n之间的随机数。
其中RAND_MAX=0x7fffffff
(可以算一下 0x7FFFFFFF 是多少
每个十六进制数4bit,因此8位16进制是4个字节,刚好是一个int整型 F的二进制码为 1111 7的二进制码为 0111 这样一来,整个整数 0x7FFFFFFF 的二进制表示就是除了首位是 0,其余都是1 就是说,这是最大的整型数 int(因为第一位是符号位,0 表示他是正数)
用 INT_MAX 常量可以替代这个值)。
转载于:https://blog.51cto.com/sincerecorner/672701