纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

c++简单随机数 c++实现简单随机数的代码

Zycc++   2021-05-23 我要评论
想了解c++实现简单随机数的代码的相关内容吗,Zycc++在本文为您仔细讲解c++简单随机数的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:c++,随机数,下面大家一起来学习吧。

c++简单随机数

#include<iostream>
#include<ctime>
#include<cstdlib> 
using namespace std;
int random(int n)
{
	return (long long)rand()*rand%n; 
}

int main()
{
	srand(unsigned(time(0)));
	//
	//求负数随机数,先产生0-2n之间的随机整数,再减去n就得到了-n - n 之间的数
	  
}

实例扩展:

随机数引擎都需要一个种子,生成的都是伪随机数。

引擎适配器可以套一个随机数引擎:

  • discard_block_engine在连续若干个伪随机数中选择若干个;
  • independent_bits_engine把位数多的伪随机数压缩成位数少的;
  • shuffle_order_engine把连续若干个伪随机数重排。

套娃的方式是模板,理论上你还可以用适配器套适配器,不过CPU可能会有意见。

随机数引擎的模板参数怎么取?标准定义了一些数学家们发现的效果良好的随机数引擎:LCG minstd_rand0、minstd_rand、knuth_b;MT mt19937、mt19937_64;LFG ranlux24_base、ranlux48_base、ranlux24、ranlux48。如果你还是无从下手,那就用default_random_engine,编译器的开发者们为你选好了他们认为最合适的,在MSVC中是mt19937,在GCC中是minstd_rand0。

以上工具都生成伪随机数,标准还定义了真·随机数引擎random_device,尽管标准也允许它是伪随机的。如果它是真随机的,那么使用起来它的效果无疑是最好的,但是多次调用后性能会急剧下降,通常只用于生成伪随机数引擎的种子。

随机数生成器类型都定义了静态方法min和max,返回生成的随机数的范围,以及无参数的函数调用运算符operator(),返回随机数。

#include <iostream>
#include <random>

int main()
{
  auto engine = std::default_random_engine(std::random_device()());
  std::cout << "min = " << engine.min() << "; max = " << engine.max() << std::endl;
  std::cout << "random numbers: ";
  for (int i = 0; i != 10; ++i)
    std::cout << engine() << ' ';
  std::cout << std::endl;
}


相关文章

猜您喜欢

  • springboot配置多数据源 教你使用springboot配置多数据源

    想了解教你使用springboot配置多数据源的相关内容吗,Jay_Chou12580在本文为您仔细讲解springboot配置多数据源的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:springboot配置多数据源,springboot配置数据库,下面大家一起来学习吧。..
  • 第一个vue-cli程序 Vue新手指南之创建第一个vue-cli脚手架程序

    想了解Vue新手指南之创建第一个vue-cli脚手架程序的相关内容吗,TheLightOfCode在本文为您仔细讲解第一个vue-cli程序的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:vue-cli创建项目,创建vuecli项目,创建vue脚手架,下面大家一起来学习吧。..

网友评论

Copyright 2020 www.moon-script.com 【月光下载】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式