产生随机数是计算机编程中常用的操作,C语言和C++编程语言也提供了产生随机数的函数。下面我将会详细讲解在C语言和C++编程语言中如何产生随机数。
在 C 语言中产生随机数
在C语言语言中,使用rand()函数可以产生随机数。这个函数的返回值是随机数。但是,如果不进行特别的设置,rand()函数每次返回的随机数都是相同的。这是因为随机数的生成是基于种子的。如果给定相同的种子,那么rand()函数每次返回的随机数也是相同的。因此,我们需要通过srand()函数来设置随机数的种子。
下面是一个简单的示例,展示如何在C语言中产生随机数。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, n;
time_t t;
n = 5;
/* 设置随机数的种子 */
srand((unsigned) time(&t));
/* 产生随机数 */
for(i = 0; i < n; i++)
{
printf("%d\n", rand());
}
return 0;
}
在这个示例中,我们使用了time()函数获取当前时间,并将其作为srand()函数的种子。每次运行程序都会产生不同的随机数序列。
在 C++ 中产生随机数
在C++语言中产生随机数,也需要用到srand()和rand()函数。但是,C++提供了更为方便的方法。使用
下面是一个简单的示例,展示如何在 C++ 中使用
#include <iostream>
#include <random>
using namespace std;
int main()
{
int n = 5;
/* 使用随机数引擎和分布库产生随机数 */
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<> dis(1, 100);
for(int i = 0; i < n; i++)
{
cout << dis(gen) << endl;
}
return 0;
}
在这个示例中,我们使用随机数引擎和分布库产生随机数。利用random_device获取随机数生成器的种子,然后使用mt19937类型的生成器gen生成随机数,uniform_int_distribution指定了随机数产生的范围。
通过这种方式,可以很方便地产生随机数,且每次运行程序都会产生不同的随机数序列。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言/C++中如何产生随机数 - Python技术站