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(),不建议进行认真随机数生成需求,如密码。
以上是 C语言基本随机数生成 的全部内容, 来源链接: utcz.com/z/337875.html