当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ srand()用法及代码示例


在本教程中,我们将借助示例了解 C++ srand() 函数。

C++ 中的srand() 函数为rand() 函数使用的伪随机数生成器提供种子。它在cstdlib 头文件中定义。

示例

#include<iostream>
#include<cstdlib>
using namespace std;

int main() {

  // set seed to 10
  srand(10);

  // generate random number
  int random = rand();

  cout << random;

  return 0;
}

// Output: 71

srand() 语法

用法:

srand(unsigned int seed);

参数:

srand() 函数采用以下参数:

  • seed- 类型的种子值unsigned int

返回:

srand() 函数不返回任何值。

srand() 原型

cstdlib 头文件中定义的srand() 原型为:

void srand(unsigned int seed);

这里,srand() 参数seedrand() 函数用作种子。

C++的工作srand()

srand()函数设置种子rand()函数。种子为rand()函数是1默认。

这意味着如果在 rand() 之前没有调用 srand() ,则 rand() 函数的行为就像是使用 srand(1) 播种一样。

但是,如果在 rand 之前调用 srand() 函数,则 rand() 函数会生成一个带有由 srand() 设置的种子的数字。

注意:"seed" 是伪随机数序列的起点。要了解更多信息,请访问此链接堆栈溢出.

示例 1:C++ srand()

#include<iostream>
#include<cstdlib>
using namespace std;

int main() {
  int random = rand();
  
  // srand() has not been called), so seed = 1
  cout << "Seed = 1, Random number = " << random << endl;

  // set seed to 5
  srand(5);

  // generate random number
  random = rand();
  cout << "Seed = 5, Random number = " << random << endl;

  return 0;
}

输出

Seed = 1, Random number = 41
Seed = 5, Random number = 54

srand() 标准实践

  1. 伪随机数生成器不应该在每次我们生成一组新数字时播种,即它应该播种只有一次在程序开始时,在任何调用之前rand().
  2. 最好使用调用的结果time(0)作为种子。这time()函数返回自以来的秒数UTC 时间 1970 年 1 月 1 日 00:00(即当前的 unix 时间戳)。

    因此,种子的价值随时间而变化。所以每次我们运行程序时,都会生成一组新的随机数。

示例 2:srand() 和 time()

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;

int main() {

  // set seed to time(0)
  srand(time(0));

  // generate random number
  int random = rand();

  // print seed and random number
  cout << "Seed = " << time(0) << endl;
  cout << "Random number = " << random;

  return 0;
}

输出

Seed = 1629892833
Random number = 5202

相关用法


注:本文由纯净天空筛选整理自 C++ srand()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。