c++产生均匀分布随机数赋值_C++ 随机数初探

C++11引入了新的随机数库,解决了C++11之前rand函数只能生成均匀分布的问题。随机数库包括随机数引擎和分布两部分,可以生成指定范围和概率分布的随机数。通过设置种子,可以改变随机数序列。除了均匀分布,还有多种非均匀分布如正态分布、二项分布等可供选择。
摘要由CSDN通过智能技术生成

(给CPP开发者加星标,提升C/C++技能)

来源:S大幕 https://blog.csdn.net/qq_34784753/article/details/79600809

【导读】:在 C++ 11之前,C 和 C++ 都依赖一个简单的 C 库函数 rand 来生成随机数,rand只能生成均匀分布的随机数,那么当我们需要非均匀分布时,应该怎么办?C++11种引入了新的随机数接口,我们一起来看看吧。

--- 以下是正文 ---

C++ 中的随机数

在 C++ 程序中,在新标准出现之前,C 和 C++ 都依赖一个简单的 C 库函数 rand 来生成随机数,但是,这个函数生成的是均匀分布的伪随机数,每个随机数的范围在 0 和一个系统相关的最大值(至少为 32767)之间。

rand 函数有一些问题:即使不是大多数,也有很多程序需要不通范围的随机数。一些应用需要随机浮点数。一些程序需要非均匀分布的随机数。而在编写程序为了解决这些通常会转换 rand 生成的随机数的范围、类型或者是分布时,常常会引入非随机性。

在 C++ 11 标准中,定义在头文件 random 中的随机数库通过一组协作的类来解决这些问题,主要用到的是两个类:

  • 随机数引擎类(random-number engines)

  • 随机数分布类(random-number distribution)

其中,一个引擎类可以生成 unsigned 随机数列,一个分布使用一个引擎类生成指定类型的,在给定范围内的,服从指定概率分布的随机数。

1. 随机数引擎和分布

随机数引擎是函数对象类,他们定义了一个调用运算符,该运算符不接受参数并返回一个随机的 unsigned 整数。我们可以通过调用一个随机数引擎对象来生成原始随机数。


 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值