C/C++ 中的 rand() 和 srand()


在本文中,我们将讨论 C++ STL 中 rand() 和 srand() 函数的工作原理、语法和示例。

什么是 rand()?

rand() 函数是 C++ STL 中的一个内置函数,它在 <cstdlib> 头文件中定义。rand() 用于生成一系列随机数。当我们希望在代码中生成一个随机数时,可以使用此函数。

例如,我们在 C++ 中制作一个“飞行棋”游戏,需要在 1 到 6 之间生成任意随机数,那么我们可以使用 rand() 生成一个随机数。

随机数是使用一种算法生成的,该算法在每次调用此函数时都会产生一系列不相关的数字。

例如,如果我们想要生成 1 到 6 之间的随机数,则可以使用以下函数:

Num = rand() % 6 + 1;

语法

int rand();

参数

该函数不接受任何参数。

返回值

此函数返回一个介于 0 到 RAND_MAX 之间的整数值。

输入

rand() % 100 +1;

输出

57

示例

rand()

实时演示

#include <stdio.h>
#include <stdlib.h&g;
int main(void){
   printf("Randomly generated numbers are: ");
   for(int i = 0; i<5; i++)
      printf(" %d ", rand());
   return 0;
}

输出

如果我们第一次运行此代码,输出将为:

Randomly generated numbers are: 1804289383 846930886 1681692777 1714636915
1957747793

如果我们第 N 次运行此代码,输出将为:

Randomly generated numbers are: 1804289383 846930886 1681692777 1714636915
1957747793

什么是 srand()?

srand() 函数是 C++ STL 中的一个内置函数,它在 <cstdlib> 头文件中定义。srand() 用于初始化随机数生成器。此函数提供一个起点来生成伪随机整数序列。该参数作为生成伪随机数的种子传递。只要在 srand 中使用不同的种子值,就可以预期伪数生成器会生成不同的结果序列,与 rand() 相同。

语法

int srand(unsigned int seed);

参数

该函数接受以下参数:

  • seed - 这是一个整数,用作伪随机数生成器的种子。

返回值

此函数返回一个伪生成的随机数。

输入

srand(time(0));
rand();

输出

1804289383

示例

srand()

实时演示

#include <stdio.h>
#include <stdlib.h>
#include<time.h>
int main(void){
   srand(time(0));
   printf("Randomly generated numbers are: ");
   for(int i = 0; i<5; i++)
      printf(" %d ", rand());
   return 0;
}

输出

如果我们第一次运行此代码,输出将为:

Randomly generated numbers are: 382366186 1045528146 1291469435 515349891
931606430

如果我们第二次运行此代码,输出将为:

Randomly generated numbers are: 1410939666 214525217 875042802
1560673843 782892338

更新于: 2020年4月22日

10K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.