C++11产生随机数
发布日期:2021-05-28 16:52:31 浏览次数:43 分类:精选文章

本文共 1042 字,大约阅读时间需要 3 分钟。

在C++11中,Generating random numbers可以通过使用

库中的功能来进行。这个库提供了随机数生成器和分布等工具,能够生成高质量的随机数。而随机数的可重复性取决于如何初始化生成器。以下是优化后的代码:

#include 
#include
#include
#include
using namespace std;void generate_random_1(int num) { default_random_engine e; // 每次初始种子相同,生成的随机数也相同 uniform_int_distribution
u(1, 100); cout << "Generate_Random_1: "; for (int i = 0; i < num; ++i) { if (i > 0) cout << " "; cout << u(e) << endl; } cout << endl;}void generate_random_2(int num) { default_random_engine e(time(0)); // 用当前时间作为种子 uniform_int_distribution
u(1, 100); cout << "Generate_Random_2: "; for (int i = 0; i < num; ++i) { if (i > 0) cout << " "; cout << u(e)<<" "; } cout << endl; // 手动控制间隔以确保每次运行种子不同 system("pause");}int main() { // 生成随机数 generate_random_1(10); generate_random_2(10); return 0;}

个人想法

为了避免generate_random_2每次运行的第一个随机数相同,可以通过手动控制种子或修改随机数生成的顺序。例如,可以在生成完第一个随机数后,重新获取新的时间或其他随机数源。或者,使用不同的分布策略来生成随机数,以减少首次相同的情况。最终,确保用户能够清晰看到随机数的区别和独立性。

上一篇:C++如何提高Vector效率的一些方法
下一篇:C++中vector使用find函数查找struct结构体内容

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年05月07日 02时27分46秒