C++随机数:rand和srand函数总结

一、rand和srand函数

在C语言的库函数中,系统提供了两个用于产生随机数的函数:srand()和rand() 。

rand()函数原型如下:

int rand(void);

void表示它不接受任何参数,返回值是在[0,RAND_MAX]之间的随机整数。

srand()函数原型:

void srand(unsigned seed);

参数的变量类型为unsigned,表示seed只能保存非负整数,这样就避免了不会将复数传递给srand 。

seed是一个用于保存种子的变量,,用来初始化srand()的起始值。

二、函数的调用情况

rand函数并不是真正的随机数生成器,它所产生的其实是根据算法生成的随机数,即在一定范围具备差异性,但当样本足够大时,又具有规律性。

在调用rand函数前,需要调用srand来提供随机数种子。如果在第一次调用rand函数时没有调用srand函数,那么系统将会自动调用srand(),这时rand函数每次运行产生的将会是相同的随机数序列。

如下图所示,这个代码无论运行多少次,产生的都必然是相同的五个随机数。

#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
   
    int a;
    for(int i=0 ; i<5 ; i++)
    {
   
        a = rand();
        cout << a << endl;
    }
    return

你可能感兴趣的:(Linux,c,/,c++)