Home C&C++函数库 c++ 语法 程序源码 Linux C库

srand

函数   <cstdlib>

void srand (unsigned int seed);

初始化随机数生成器

使用作为种子(seed )传递的参数进行初始化的伪随机数生成器。
对于srand调用中使用的每个不同种子(seed )值,可以预期伪随机数生成器将在随后的rand调用中生成不同的连续结果。

使用相同种子的两个不同初始化将在随后的rand调用中生成相同的连续结果。
如果seed设置为1,生成器将被重新初始化为它的初始值,并生成与调用rand或srand之前相同的值。

为了生成类随机数,srand通常被初始化为一些独特的运行时值, 比如函数time返回的值 (在头文件<ctime>中声明)。这足以满足大多数琐碎的随机需求。

☲  参数



seed
一个整数值,用作伪随机数生成器算法的种子。

☉  返回值





☣  示例



/* srand example */
#include <stdio.h>      /* printf, NULL */
#include <stdlib.h>     /* srand, rand */
#include <time.h>       /* time */

int main ()
{
  printf ("First number: %d\n", rand()%100);
  srand (time(NULL));
  printf ("Random number: %d\n", rand()%100);
  srand (1);
  printf ("Again the first number: %d\n", rand()%100);

  return 0;
}


可能的输出:
First number: 41
Random number: 13
Again the first number: 41

↭  数据竞争



该函数访问和修改内部状态对象,这可能会导致rand或srand的并发调用发生数据竞争。

一些库提供了一个替代函数,显式地避免了这种数据竞争:rand_r(不可移植)。

c++库实现允许保证调用该函数时不存在数据竞争。

❆  异常(c++)



无抛出保证:此函数从不抛出异常。

🍄  另请参阅



rand 生成随机数(function )

联系我们 免责声明 关于CandCplus 网站地图