21xrx.com
2024-11-05 14:43:13 Tuesday
登录
文章检索 我的文章 写文章
C++生成随机数的代码
2023-07-05 08:48:19 深夜i     --     --
C++ 随机数 代码 生成 函数

在C++中,生成随机数的方法有很多种。下面介绍几种常用的方法。

1.使用rand()函数

rand()函数是C语言中生成随机数的函数,也可以在C++中使用。该函数的原型为:


int rand(void);

该函数的返回值为一个随机数,取值范围为0到RAND_MAX。但是,使用rand()函数生成的随机数是伪随机数,其真实性不能得到保证。因此,在使用rand()函数生成随机数时,需要先使用srand()函数对生成随机数的种子进行初始化:


srand(time(NULL)); // 初始化随机数生成器种子

time(NULL)函数返回的是当前时间的秒数,以这个值作为srand()函数的参数可以保证每次程序运行时生成的随机数种子不同,从而生成不同的随机数。

2.使用random_shuffle()函数

random_shuffle()函数是STL库中实现的一个随机置换函数,其原型为:


template <class RandomAccessIterator>

void random_shuffle ( RandomAccessIterator first, RandomAccessIterator last );

该函数接受两个迭代器,将[first,last)范围内的元素进行随机置换。由于random_shuffle()函数使用的是系统提供的随机数生成器,所以无需手动初始化种子。

3.使用其他随机数生成函数

除了rand()函数和random_shuffle()函数之外,C++还提供了其他的随机数生成函数,例如:

- mt19937和uniform_int_distribution:使用Mersenne Twister算法生成的随机数

- std::random_device和std::mt19937:使用系统提供的随机数生成器和Mersenne Twister算法生成的随机数

这些函数的用法与rand()函数类似,不同的是使用的生成随机数的算法不同,可以根据实际需要选择使用。

总结

生成随机数是C++中常用的操作之一,有多种实现方式。在使用rand()函数生成随机数时,需要先使用srand()函数对生成随机数的种子进行初始化;使用其他随机数生成函数则不需要手动初始化种子。在实际应用中,可以根据实际需要选择不同的方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复