C++ rand()和srand()函数

时间:2020-02-23 14:41:42  来源:igfitidea点击:

在本文中,我们将重点介绍使用C++ rand()和srand()函数生成随机数。

什么是C++ rand()函数?

C++ rand()函数用于在编译时生成随机数。
一旦系统遇到rand()函数,它将生成一组随机数字作为输出。

语法:

rand()

使用rand()函数,当我们编译并运行程序时,系统会生成相同的随机数集。

使用rand()生成您的第一个随机数

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

int main()
{
  int random_num = rand();
  cout<<random_num;
}

每次您尝试运行上述代码时,它都会产生与以下相同的输出随机数。

输出:

1804289383

使用rand()生成多个随机数

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

int main()
{ 
 for(int rand_num = 0; rand_num<10; rand_num++) 
      cout<<rand()<<endl;
  return 0; 
}

在此示例中,我们分别使用for循环和rand()函数生成了10个随机数。

输出:

1804289383
846930886
1681692777
1714636915
1957747793
424238335
719885386
1649760492
596516649
1189641421

什么是C++ srand()函数?

C++ srand()被视为rand()函数的Set种子。

srand()函数与rand()函数一起用于在编译时生成随机数。

C++ srand()函数设置rand()函数执行随机数的起点/起点。
通常,在程序中执行rand()函数之前,将对srand()函数进行设置和调用一次。

语法:

srand(time())

time()函数返回系统的当前时间。
因此,每次执行代码时,传递给种子函数的值都会根据时间而变化。
因此,无论何时执行程序,都会生成新的随机数字集,这与rand()函数不同。

srand()函数的标准值为time(0)。

以时间为种子的随机数

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

int main()
{
 srand(time(0)); 
 int rand_num = rand();
 cout<<rand_num;
}

每当我们执行上述代码时,都会生成一个新的随机数。

输出:

153261608

使用srand()生成多个随机数

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

int main()
{  
 srand(time(0)); 
 for(int rand_num = 0; rand_num<10; rand_num++) 
      cout<<rand()<<endl;
  return 0; 
}

输出:

931265979
1479686946
1788426935
1359145123
582011072
375015354
631128646
1181344226
1858016203
138472912

对生成的随机数执行数学运算

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

int main()
{  
 srand(time(0)); 
 for(int rand_num = 0; rand_num<10; rand_num++) 
      cout<<rand()%100<<endl;
  return 0; 
}

输出:

84
79
50
79
84
74
81
56
77
16

C++ rand()和srand()函数

  • rand()函数随机生成数字。

  • 在程序中执行rand()函数时,将表示相同的随机数。

  • srand()函数与rand()函数一起在编译时生成随机数。

  • srand()函数不返回任何值,而rand()函数返回由它生成的随机数。