C语言基本随机数生成
示例
该函数rand()可用于在0和RAND_MAX(0和RAND_MAX包括)之间生成伪随机整数值。
srand(int)用于种子伪随机数生成器。每次rand()使用相同的种子进行播种时,都必须产生相同的值序列。调用前只能播种一次rand()。每次要生成新一批伪随机数时,都不应重复播种或重新播种。
标准做法是将结果time(NULL)用作种子。如果您的随机数生成器要求具有确定性的序列,则可以在每次程序启动时为生成器提供相同的值。发行代码通常不需要这样做,但是在调试运行中使错误可重现非常有用。
建议始终为生成器添加种子,如果未添加种子,则其行为似乎与一起使用srand(1)。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int i;
srand(time(NULL));
i = rand();
printf("Random value between [0, %d]: %d\n", RAND_MAX, i);
return 0;
}可能的输出:
Random value between [0, 2147483647]: 823321433
笔记:
C标准不保证所产生随机序列的质量。过去,的某些实现rand()在生成数字的分布和随机性方面存在严重问题。的使用rand(),不建议进行认真随机数生成需求,如密码。
热门推荐
10 同事换单位简短祝福语
11 谢谢朋友的祝福语简短
12 立秋节气简短祝福语
13 新房祝福语简短10字
14 长辈新年祝福语大全简短
15 新年给大家简短祝福语
16 生日祝福语简短独特姑姑
17 芭比的婚礼祝福语简短
18 邀请新人祝福语简短英文