c – std :: default_random_engine生成0.0到1.0之间的值
发布时间:2020-12-16 03:29:30 所属栏目:百科 来源:网络整理
导读:我想要生成0.0到1.0之间的随机值 我试过使用 std::default_random_engine generator;std::uniform_real_distributionfloat distribution(0.0,1.0);float myrand = distribution(generator); 在循环中生成随机值可以让我总是这些值: 0.0000220.0850320.60135
我想要生成0.0到1.0之间的随机值
我试过使用 std::default_random_engine generator; std::uniform_real_distribution<float> distribution(0.0,1.0); float myrand = distribution(generator); 在循环中生成随机值可以让我总是这些值: 0.000022 0.085032 0.601353 0.891611 0.967956 0.189690 0.514976 0.398008 0.262906 0.743512 0.089548 我可以做些什么来真正获得随机值? 解决方法// 1-st variant: using time() function for seed random distribution std::default_random_engine generator(time(0)); std::uniform_real_distribution<double> distribution(first,last); return distribution(generator); /*disadvantages: 如果使用相同的随机数生成器的开放乘法程序 // 2-nd variant: std::uniform_real_distribution<double> distribution(first,last); std::random_device rd; std::default_random_engine generator( rd() ); return distribution(generator); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |