生成随机数在编程中是一个常见的需求,C语言和C++都提供了相应的库函数来生成随机数。下面是生成随机数的完整攻略:
包含头文件
在C语言中需要包含stdlib.h头文件,而在C++中需要包含
// C语言
#include <stdlib.h>
// C++语言
#include <random>
srand函数
srand函数是C语言中用来设置随机数生成器中随机种子的函数。该函数的参数为一个整数,一般使用当前时间作为参数,可以使用time函数获取当前时间。
#include <stdlib.h>
#include <time.h>
int main()
{
srand((unsigned)time(NULL));
// generate random number
}
rand函数
rand函数是C语言中用来生成随机数的函数。该函数返回的是一个0到RAND_MAX的随机数,可以通过取模运算来控制返回的范围。同时,每次调用rand函数返回的随机数是无序的。
#include <stdlib.h>
#include <time.h>
int main()
{
srand((unsigned)time(NULL));
// generate random number between 0 and 9
int num = rand() % 10;
// generate random number between 1 and 6
int dice = rand() % 6 + 1;
return 0;
}
C++随机数生成器
C++中提供了更加灵活的随机数生成方式,包括生成分布式随机数、生成均匀分布的随机数、生成高斯分布的随机数等。在使用C++生成随机数时,首先需要实例化一个随机数生成器。
#include <random>
std::default_random_engine generator;
实例化后,就可以使用随机数生成器生成相应的随机数。以下展示了生成0到9的随机整数、生成0到1之间的随机实数、生成1到6的随机整数的示例:
#include <random>
std::default_random_engine generator;
int main()
{
// generate random integer between 0 and 9
std::uniform_int_distribution<int> distribution(0,9);
int num = distribution(generator);
// generate random number between 0 and 1
std::uniform_real_distribution<double> distribution2(0.0,1.0);
double rand_num = distribution2(generator);
// generate random integer between 1 and 6
std::uniform_int_distribution<int> distribution3(1,6);
int dice = distribution3(generator);
return 0;
}
以上就是C/C++生成随机数的完整攻略了。在C语言中需要使用srand和rand函数,而在C++中需要实例化随机数生成器,并使用生成分布式随机数的方式来生成随机数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言/C++如何生成随机数 - Python技术站