1602 lines
155 KiB
HTML
1602 lines
155 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
|
|
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<title>标准库头文件 <random></title>
|
|
<link rel="stylesheet" href="ext.css" />
|
|
<link rel="stylesheet" href="site_modules.css" />
|
|
</head>
|
|
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_header_random skin-cppreference2 action-view cpp-navbar">
|
|
<div id="cpp-content-base">
|
|
<div id="content"><a id="top"></a>
|
|
<h1 id="firstHeading" class="firstHeading"><span style="font-size:0.7em; line-height:130%">标准库头文件</span> <random></h1>
|
|
<div id="bodyContent">
|
|
<div id="contentSub"><span class="subpages">< <a href="cpp.html">cpp</a>‎ | <a href="cpp-header.html">header</a></span></div>
|
|
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
|
|
<p>此头文件是<a href="cpp-numeric-random.html">伪随机数生成</a>库的一部分。</p>
|
|
<table class="t-dsc-begin">
|
|
<tr>
|
|
<td colspan="2">
|
|
<h3><span class="mw-headline" id=".E5.8C.85.E5.90.AB">包含</span></h3>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-header-initializer_list.html"><span class="t-lines"><span><initializer_list></span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td><span class="t-lc"><a href="cpp-utility-initializer_list.html">std::initializer_list</a></span> 类模板</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h3><span class="mw-headline" id=".E6.A6.82.E5.BF.B5">概念</span></h3>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E5.9D.87.E5.8C.80.E9.9A.8F.E6.9C.BA.E4.BD.8D.E7.94.9F.E6.88.90.E5.99.A8.E8.A6.81.E6.B1.82">均匀随机位生成器要求</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-uniform_random_bit_generator.html"><span class="t-lines"><span>uniform_random_bit_generator</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定类型具备作为均匀随机位生成器的资格<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h3><span class="mw-headline" id=".E7.B1.BB">类</span></h3>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E9.9A.8F.E6.9C.BA.E6.95.B0.E5.BC.95.E6.93.8E">随机数引擎</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-linear_congruential_engine.html"><span class="t-lines"><span>linear_congruential_engine</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>实现<a href="https://en.wikipedia.org/wiki/Linear_congruential_generator" class="extiw" title="enwiki:Linear congruential generator">线性同余</a>算法<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-mersenne_twister_engine.html"><span class="t-lines"><span>mersenne_twister_engine</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>实现<a href="https://en.wikipedia.org/wiki/Mersenne_twister" class="extiw" title="enwiki:Mersenne twister">梅森缠绕器</a>算法<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-subtract_with_carry_engine.html"><span class="t-lines"><span>subtract_with_carry_engine</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>实现带进位减(一种<a href="https://en.wikipedia.org/wiki/Lagged_Fibonacci_generator" class="extiw" title="enwiki:Lagged Fibonacci generator">延迟斐波那契</a>)算法<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E9.9A.8F.E6.9C.BA.E6.95.B0.E5.BC.95.E6.93.8E.E9.80.82.E9.85.8D.E5.99.A8">随机数引擎适配器</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-discard_block_engine.html"><span class="t-lines"><span>discard_block_engine</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>舍弃随机数引擎的某些输出<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-independent_bits_engine.html"><span class="t-lines"><span>independent_bits_engine</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>将一个随机数引擎的输出打包为指定位数的块<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-shuffle_order_engine.html"><span class="t-lines"><span>shuffle_order_engine</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>以不同顺序发送一个随机数引擎的输出<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E9.A2.84.E5.AE.9A.E4.B9.89.E7.94.9F.E6.88.90.E5.99.A8">预定义生成器</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>minstd_rand0</code><span class="t-mark-rev t-since-cxx11">(C++11)</span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-numeric-random-linear_congruential_engine.html"><span class="kw1480">std::<span class="me2">linear_congruential_engine</span></span></a><span class="sy1"><</span><a href="cpp-types-integer.html"><span class="kw126">std::<span class="me2">uint_fast32_t</span></span></a>, <span class="nu0">16807</span>, <span class="nu0">0</span>, <span class="nu0">2147483647</span><span class="sy1">></span></span></span><br />
|
|
<p>由 Lewis、Goodman 及 Miller 发现于 1969,由 Park 与 Miller 于 1988 采纳为“最小标准”</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>minstd_rand</code><span class="t-mark-rev t-since-cxx11">(C++11)</span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-numeric-random-linear_congruential_engine.html"><span class="kw1480">std::<span class="me2">linear_congruential_engine</span></span></a><span class="sy1"><</span><a href="cpp-types-integer.html"><span class="kw126">std::<span class="me2">uint_fast32_t</span></span></a>, <span class="nu0">48271</span>, <span class="nu0">0</span>, <span class="nu0">2147483647</span><span class="sy1">></span></span></span><br />
|
|
<p>较新的“最小标准”,为 Park、 Miller 及 Stockmeyer 于 1993 推荐</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>mt19937</code><span class="t-mark-rev t-since-cxx11">(C++11)</span></td>
|
|
<td>
|
|
<p><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-numeric-random-mersenne_twister_engine.html"><span class="kw1481">std::<span class="me2">mersenne_twister_engine</span></span></a><span class="sy1"><</span><a href="cpp-types-integer.html"><span class="kw126">std::<span class="me2">uint_fast32_t</span></span></a>, <span class="nu0">32</span>, <span class="nu0">624</span>, <span class="nu0">397</span>, <span class="nu0">31</span>,<br />
|
|
<span class="nu12">0x9908b0df</span>, <span class="nu0">11</span>,<br />
|
|
<span class="nu12">0xffffffff</span>, <span class="nu0">7</span>,<br />
|
|
<span class="nu12">0x9d2c5680</span>, <span class="nu0">15</span>,<br />
|
|
<span class="nu12">0xefc60000</span>, <span class="nu0">18</span>, <span class="nu0">1812433253</span><span class="sy1">></span></span></span><br />
|
|
32 位梅森缠绕器,由松本与西村设计于 1998</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>mt19937_64</code><span class="t-mark-rev t-since-cxx11">(C++11)</span></td>
|
|
<td>
|
|
<p><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-numeric-random-mersenne_twister_engine.html"><span class="kw1481">std::<span class="me2">mersenne_twister_engine</span></span></a><span class="sy1"><</span><a href="cpp-types-integer.html"><span class="kw127">std::<span class="me2">uint_fast64_t</span></span></a>, <span class="nu0">64</span>, <span class="nu0">312</span>, <span class="nu0">156</span>, <span class="nu0">31</span>,<br />
|
|
<span class="nu12">0xb5026f5aa96619e9</span>, <span class="nu0">29</span>,<br />
|
|
<span class="nu12">0x5555555555555555</span>, <span class="nu0">17</span>,<br />
|
|
<span class="nu12">0x71d67fffeda60000</span>, <span class="nu0">37</span>,<br />
|
|
<span class="nu12">0xfff7eee000000000</span>, <span class="nu0">43</span>, <span class="nu0">6364136223846793005</span><span class="sy1">></span></span></span><br />
|
|
64 位梅森缠绕器,由松本与西村设计于 2000</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>ranlux24_base</code><span class="t-mark-rev t-since-cxx11">(C++11)</span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-numeric-random-subtract_with_carry_engine.html"><span class="kw1482">std::<span class="me2">subtract_with_carry_engine</span></span></a><span class="sy1"><</span><a href="cpp-types-integer.html"><span class="kw126">std::<span class="me2">uint_fast32_t</span></span></a>, <span class="nu0">24</span>, <span class="nu0">10</span>, <span class="nu0">24</span><span class="sy1">></span></span></span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>ranlux48_base</code><span class="t-mark-rev t-since-cxx11">(C++11)</span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-numeric-random-subtract_with_carry_engine.html"><span class="kw1482">std::<span class="me2">subtract_with_carry_engine</span></span></a><span class="sy1"><</span><a href="cpp-types-integer.html"><span class="kw127">std::<span class="me2">uint_fast64_t</span></span></a>, <span class="nu0">48</span>, <span class="nu0">5</span>, <span class="nu0">12</span><span class="sy1">></span></span></span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>ranlux24</code><span class="t-mark-rev t-since-cxx11">(C++11)</span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-numeric-random-discard_block_engine.html"><span class="kw1483">std::<span class="me2">discard_block_engine</span></span></a><span class="sy1"><</span><a href="cpp-numeric-random-subtract_with_carry_engine.html"><span class="kw1491">std::<span class="me2">ranlux24_base</span></span></a>, <span class="nu0">223</span>, <span class="nu0">23</span><span class="sy1">></span></span></span><br />
|
|
<p>24 位 RANLUX 生成器,由 Martin Lüscher 与 Fred James 设计于 1994</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>ranlux48</code><span class="t-mark-rev t-since-cxx11">(C++11)</span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-numeric-random-discard_block_engine.html"><span class="kw1483">std::<span class="me2">discard_block_engine</span></span></a><span class="sy1"><</span><a href="cpp-numeric-random-subtract_with_carry_engine.html"><span class="kw1492">std::<span class="me2">ranlux48_base</span></span></a>, <span class="nu0">389</span>, <span class="nu0">11</span><span class="sy1">></span></span></span><br />
|
|
<p>48 位 RANLUX 生成器,由 Martin Lüscher 与 Fred James 设计于 1994</p>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>knuth_b</code><span class="t-mark-rev t-since-cxx11">(C++11)</span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-numeric-random-shuffle_order_engine.html"><span class="kw1485">std::<span class="me2">shuffle_order_engine</span></span></a><span class="sy1"><</span><a href="cpp-numeric-random-linear_congruential_engine.html"><span class="kw1487">std::<span class="me2">minstd_rand0</span></span></a>, <span class="nu0">256</span><span class="sy1">></span></span></span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>default_random_engine</code><span class="t-mark-rev t-since-cxx11">(C++11)</span></td>
|
|
<td><i>实现定义</i></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E9.9D.9E.E7.A1.AE.E5.AE.9A.E6.80.A7.E9.9A.8F.E6.9C.BA.E6.95.B0">非确定性随机数</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-random_device.html"><span class="t-lines"><span>random_device</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>使用硬件熵源的非确定随机数生成器<br />
|
|
<span class="t-mark">(类)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E5.9D.87.E5.8C.80.E5.88.86.E5.B8.83">均匀分布</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-uniform_int_distribution.html"><span class="t-lines"><span>uniform_int_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生在一个范围上均匀分布的整数值<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-uniform_real_distribution.html"><span class="t-lines"><span>uniform_real_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生在一个范围上均匀分布的实数值<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E4.BC.AF.E5.8A.AA.E5.88.A9.E5.88.86.E5.B8.83">伯努利分布</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-bernoulli_distribution.html"><span class="t-lines"><span>bernoulli_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生<a href="https://en.wikipedia.org/wiki/Bernoulli_distribution" class="extiw" title="enwiki:Bernoulli distribution">伯努利分布</a>上的 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">bool</span></span></span> 值。<br />
|
|
<span class="t-mark">(类)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-binomial_distribution.html"><span class="t-lines"><span>binomial_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生<a href="https://en.wikipedia.org/wiki/Binomial_distribution" class="extiw" title="enwiki:Binomial distribution">二项分布</a>上的整数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-negative_binomial_distribution.html"><span class="t-lines"><span>negative_binomial_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生<a href="https://en.wikipedia.org/wiki/Negative_binomial_distribution" class="extiw" title="enwiki:Negative binomial distribution">负二项分布</a>上的整数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-geometric_distribution.html"><span class="t-lines"><span>geometric_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生<a href="https://en.wikipedia.org/wiki/Geometric_distribution" class="extiw" title="enwiki:Geometric distribution">几何分布</a>上的整数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E6.B3.8A.E6.9D.BE.E5.88.86.E5.B8.83">泊松分布</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-poisson_distribution.html"><span class="t-lines"><span>poisson_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生<a href="https://en.wikipedia.org/wiki/Poisson_distribution" class="extiw" title="enwiki:Poisson distribution">泊松分布</a>上的整数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-exponential_distribution.html"><span class="t-lines"><span>exponential_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生<a href="https://en.wikipedia.org/wiki/Exponential_distribution" class="extiw" title="enwiki:Exponential distribution">指数分布</a>上的实数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-gamma_distribution.html"><span class="t-lines"><span>gamma_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生 <a href="https://en.wikipedia.org/wiki/Gamma_distribution" class="extiw" title="enwiki:Gamma distribution">Γ 分布</a>上的实数值<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-weibull_distribution.html"><span class="t-lines"><span>weibull_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生<a href="https://en.wikipedia.org/wiki/Weibull_distribution" class="extiw" title="enwiki:Weibull distribution">威布尔分布</a>上的实数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-extreme_value_distribution.html"><span class="t-lines"><span>extreme_value_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生<a href="https://en.wikipedia.org/wiki/Generalized_extreme_value_distribution" class="extiw" title="enwiki:Generalized extreme value distribution">极值分布</a>上的实数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E6.AD.A3.E6.80.81.E5.88.86.E5.B8.83">正态分布</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-normal_distribution.html"><span class="t-lines"><span>normal_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生<a href="https://en.wikipedia.org/wiki/Normal_distribution" class="extiw" title="enwiki:Normal distribution">标准正态(高斯)分布</a>上的实数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-lognormal_distribution.html"><span class="t-lines"><span>lognormal_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生<a href="https://en.wikipedia.org/wiki/Lognormal_distribution" class="extiw" title="enwiki:Lognormal distribution">对数正态分布</a>上的实数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-chi_squared_distribution.html"><span class="t-lines"><span>chi_squared_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生 <a href="https://en.wikipedia.org/wiki/Chi-squared_distribution" class="extiw" title="enwiki:Chi-squared distribution">χ<sup>2</sup> 分布</a>上的实数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-cauchy_distribution.html"><span class="t-lines"><span>cauchy_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生<a href="https://en.wikipedia.org/wiki/Cauchy_distribution" class="extiw" title="enwiki:Cauchy distribution">柯西分布</a>上的实数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-fisher_f_distribution.html"><span class="t-lines"><span>fisher_f_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生<a href="https://en.wikipedia.org/wiki/F-distribution" class="extiw" title="enwiki:F-distribution">费舍尔 F 分布</a>上的实数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-student_t_distribution.html"><span class="t-lines"><span>student_t_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生<a href="https://en.wikipedia.org/wiki/Student%27s_t-distribution" class="extiw" title="enwiki:Student's t-distribution">学生 t 分布</a>上的实数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E9.87.87.E6.A0.B7.E5.88.86.E5.B8.83">采样分布</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-discrete_distribution.html"><span class="t-lines"><span>discrete_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生离散分布上的随机整数。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-piecewise_constant_distribution.html"><span class="t-lines"><span>piecewise_constant_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生分布在常子区间上的实数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-piecewise_linear_distribution.html"><span class="t-lines"><span>piecewise_linear_distribution</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>产生分布在定义的子区间上的实数值。<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E5.B7.A5.E5.85.B7">工具</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-seed_seq.html"><span class="t-lines"><span>seed_seq</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>通用的偏差消除的混淆种子序列生成器<br />
|
|
<span class="t-mark">(类)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h3><span class="mw-headline" id=".E5.87.BD.E6.95.B0">函数</span></h3>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-numeric-random-generate_canonical.html"><span class="t-lines"><span>generate_canonical</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>给定精度的均匀分布在 [0, 1) 上的实数值<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.A6.82.E8.A6.81">概要</span></h3>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="co2">#include <initializer_list></span>
|
|
|
|
<span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="co1">// 均匀随机位生成器要求</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> G<span class="sy1">></span>
|
|
concept uniform_random_bit_generator <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 linear_congruential_engine</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> UIntType, UIntType a, UIntType c, UIntType m<span class="sy1">></span>
|
|
<span class="kw1">class</span> linear_congruential_engine<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 mersenne_twister_engine</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> UIntType, size_t w, size_t n, size_t m, size_t r,
|
|
UIntType a, size_t u, UIntType d, size_t s,
|
|
UIntType b, size_t t,
|
|
UIntType c, size_t l, UIntType f<span class="sy1">></span>
|
|
<span class="kw1">class</span> mersenne_twister_engine<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 subtract_with_carry_engine</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> UIntType, size_t w, size_t s, size_t r<span class="sy1">></span>
|
|
<span class="kw1">class</span> subtract_with_carry_engine<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 discard_block_engine</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Engine, size_t p, size_t r<span class="sy1">></span>
|
|
<span class="kw1">class</span> discard_block_engine<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 independent_bits_engine</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Engine, size_t w, <span class="kw1">class</span> UIntType<span class="sy1">></span>
|
|
<span class="kw1">class</span> independent_bits_engine<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 shuffle_order_engine</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Engine, size_t k<span class="sy1">></span>
|
|
<span class="kw1">class</span> shuffle_order_engine<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 带预定义形参的引擎及引擎适配器</span>
|
|
<span class="kw1">using</span> minstd_rand0 <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span>
|
|
<span class="kw1">using</span> minstd_rand <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span>
|
|
<span class="kw1">using</span> mt19937 <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span>
|
|
<span class="kw1">using</span> mt19937_64 <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span>
|
|
<span class="kw1">using</span> ranlux24_base <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span>
|
|
<span class="kw1">using</span> ranlux48_base <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span>
|
|
<span class="kw1">using</span> ranlux24 <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span>
|
|
<span class="kw1">using</span> ranlux48 <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span>
|
|
<span class="kw1">using</span> knuth_b <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">using</span> default_random_engine <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类 random_device</span>
|
|
<span class="kw1">class</span> random_device<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类 seed_seq</span>
|
|
<span class="kw1">class</span> seed_seq<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 函数模板 generate_canonical</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType, size_t bits, <span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
RealType generate_canonical<span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 uniform_int_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> IntType <span class="sy1">=</span> <span class="kw4">int</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> uniform_int_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 uniform_real_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> uniform_real_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类 bernoulli_distribution</span>
|
|
<span class="kw1">class</span> bernoulli_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 binomial_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> IntType <span class="sy1">=</span> <span class="kw4">int</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> binomial_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 geometric_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> IntType <span class="sy1">=</span> <span class="kw4">int</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> geometric_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 negative_binomial_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> IntType <span class="sy1">=</span> <span class="kw4">int</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> negative_binomial_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 poisson_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> IntType <span class="sy1">=</span> <span class="kw4">int</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> poisson_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 exponential_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> exponential_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 gamma_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> gamma_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 weibull_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> weibull_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 extreme_value_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> extreme_value_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 normal_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> normal_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 lognormal_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> lognormal_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 chi_squared_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> chi_squared_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 cauchy_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> cauchy_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 fisher_f_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> fisher_f_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 student_t_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> student_t_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 discrete_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> IntType <span class="sy1">=</span> <span class="kw4">int</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> discrete_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 piecewise_constant_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> piecewise_constant_distribution<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 类模板 piecewise_linear_distribution</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> piecewise_linear_distribution<span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E6.A6.82.E5.BF.B5_uniform_random_bit_generator">概念 <a href="cpp-numeric-random-uniform_random_bit_generator.html"><code>uniform_random_bit_generator</code></a></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> G<span class="sy1">></span>
|
|
concept uniform_random_bit_generator <span class="sy1">=</span>
|
|
invocable<span class="sy1"><</span>G<span class="sy3">&</span><span class="sy1">></span> <span class="sy3">&&</span> unsigned_integral<span class="sy1"><</span>invoke_result_t<span class="sy1"><</span>G<span class="sy3">&</span><span class="sy1">>></span> <span class="sy3">&&</span>
|
|
requires <span class="br0">{</span>
|
|
<span class="br0">{</span> G<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span><span class="br0">)</span> <span class="br0">}</span> <span class="sy2">-</span><span class="sy1">></span> same_as<span class="sy1"><</span>invoke_result_t<span class="sy1"><</span>G<span class="sy3">&</span><span class="sy1">>></span><span class="sy4">;</span>
|
|
<span class="br0">{</span> G<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span><span class="br0">)</span> <span class="br0">}</span> <span class="sy2">-</span><span class="sy1">></span> same_as<span class="sy1"><</span>invoke_result_t<span class="sy1"><</span>G<span class="sy3">&</span><span class="sy1">>></span><span class="sy4">;</span>
|
|
requires bool_constant<span class="sy1"><</span><span class="br0">(</span>G<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span><span class="br0">)</span> <span class="sy1"><</span> G<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::linear_congruential_engine">类模板 <span class="t-lc"><a href="cpp-numeric-random-linear_congruential_engine.html">std::linear_congruential_engine</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> UIntType, UIntType a, UIntType c, UIntType m<span class="sy1">></span>
|
|
<span class="kw1">class</span> linear_congruential_engine <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> UIntType<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 引擎特征</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type multiplier <span class="sy1">=</span> a<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type increment <span class="sy1">=</span> c<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type modulus <span class="sy1">=</span> m<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type min<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> c <span class="sy1">==</span> 0u <span class="sy4">?</span> 1u<span class="sy4">:</span> 0u<span class="sy4">;</span> <span class="br0">}</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type max<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> m <span class="sy2">-</span> 1u<span class="sy4">;</span> <span class="br0">}</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type default_seed <span class="sy1">=</span> 1u<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与播种函数</span>
|
|
linear_congruential_engine<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> linear_congruential_engine<span class="br0">(</span>default_seed<span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> linear_congruential_engine<span class="br0">(</span>result_type s<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Sseq<span class="sy1">></span> <span class="kw1">explicit</span> linear_congruential_engine<span class="br0">(</span>Sseq<span class="sy3">&</span> q<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> seed<span class="br0">(</span>result_type s <span class="sy1">=</span> default_seed<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Sseq<span class="sy1">></span> <span class="kw4">void</span> seed<span class="br0">(</span>Sseq<span class="sy3">&</span> q<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> discard<span class="br0">(</span><span class="kw4">unsigned</span> <span class="kw4">long</span> <span class="kw4">long</span> z<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::mersenne_twister_engine">类模板 <span class="t-lc"><a href="cpp-numeric-random-mersenne_twister_engine.html">std::mersenne_twister_engine</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> UIntType, size_t w, size_t n, size_t m, size_t r,
|
|
UIntType a, size_t u, UIntType d, size_t s,
|
|
UIntType b, size_t t,
|
|
UIntType c, size_t l, UIntType f<span class="sy1">></span>
|
|
<span class="kw1">class</span> mersenne_twister_engine <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> UIntType<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 引擎特征</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> size_t word_size <span class="sy1">=</span> w<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> size_t state_size <span class="sy1">=</span> n<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> size_t shift_size <span class="sy1">=</span> m<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> size_t mask_bits <span class="sy1">=</span> r<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> UIntType xor_mask <span class="sy1">=</span> a<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> size_t tempering_u <span class="sy1">=</span> u<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> UIntType tempering_d <span class="sy1">=</span> d<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> size_t tempering_s <span class="sy1">=</span> s<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> UIntType tempering_b <span class="sy1">=</span> b<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> size_t tempering_t <span class="sy1">=</span> t<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> UIntType tempering_c <span class="sy1">=</span> c<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> size_t tempering_l <span class="sy1">=</span> l<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> UIntType initialization_multiplier <span class="sy1">=</span> f<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type min<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="nu0">0</span><span class="sy4">;</span> <span class="br0">}</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type max<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="coMULTI">/* pow(2, w) - 1 */</span><span class="sy4">;</span> <span class="br0">}</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type default_seed <span class="sy1">=</span> 5489u<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与播种函数</span>
|
|
mersenne_twister_engine<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> mersenne_twister_engine<span class="br0">(</span>default_seed<span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> mersenne_twister_engine<span class="br0">(</span>result_type value<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Sseq<span class="sy1">></span> <span class="kw1">explicit</span> mersenne_twister_engine<span class="br0">(</span>Sseq<span class="sy3">&</span> q<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> seed<span class="br0">(</span>result_type value <span class="sy1">=</span> default_seed<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Sseq<span class="sy1">></span> <span class="kw4">void</span> seed<span class="br0">(</span>Sseq<span class="sy3">&</span> q<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> discard<span class="br0">(</span><span class="kw4">unsigned</span> <span class="kw4">long</span> <span class="kw4">long</span> z<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::subtract_with_carry_engine">类模板 <span class="t-lc"><a href="cpp-numeric-random-subtract_with_carry_engine.html">std::subtract_with_carry_engine</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> UIntType, size_t w, size_t s, size_t r<span class="sy1">></span>
|
|
<span class="kw1">class</span> subtract_with_carry_engine <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> UIntType<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 引擎特征</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> size_t word_size <span class="sy1">=</span> w<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> size_t short_lag <span class="sy1">=</span> s<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> size_t long_lag <span class="sy1">=</span> r<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type min<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="nu0">0</span><span class="sy4">;</span> <span class="br0">}</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type max<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="coMULTI">/* pow(2, w) - 1 */</span><span class="sy4">;</span> <span class="br0">}</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type default_seed <span class="sy1">=</span> 19780503u<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与播种函数</span>
|
|
subtract_with_carry_engine<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> subtract_with_carry_engine<span class="br0">(</span>default_seed<span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> subtract_with_carry_engine<span class="br0">(</span>result_type value<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Sseq<span class="sy1">></span> <span class="kw1">explicit</span> subtract_with_carry_engine<span class="br0">(</span>Sseq<span class="sy3">&</span> q<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> seed<span class="br0">(</span>result_type value <span class="sy1">=</span> default_seed<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Sseq<span class="sy1">></span> <span class="kw4">void</span> seed<span class="br0">(</span>Sseq<span class="sy3">&</span> q<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> discard<span class="br0">(</span><span class="kw4">unsigned</span> <span class="kw4">long</span> <span class="kw4">long</span> z<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::discard_block_engine">类模板 <span class="t-lc"><a href="cpp-numeric-random-discard_block_engine.html">std::discard_block_engine</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Engine, size_t p, size_t r<span class="sy1">></span>
|
|
<span class="kw1">class</span> discard_block_engine <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> <span class="kw1">typename</span> Engine<span class="sy4">::</span><span class="me2">result_type</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 引擎特征</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> size_t block_size <span class="sy1">=</span> p<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> size_t used_block <span class="sy1">=</span> r<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type min<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> Engine<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type max<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> Engine<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span>
|
|
|
|
<span class="co1">// 构造函数与播种函数</span>
|
|
discard_block_engine<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> discard_block_engine<span class="br0">(</span><span class="kw4">const</span> Engine<span class="sy3">&</span> e<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> discard_block_engine<span class="br0">(</span>Engine<span class="sy3">&&</span> e<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> discard_block_engine<span class="br0">(</span>result_type s<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Sseq<span class="sy1">></span> <span class="kw1">explicit</span> discard_block_engine<span class="br0">(</span>Sseq<span class="sy3">&</span> q<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> seed<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> seed<span class="br0">(</span>result_type s<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Sseq<span class="sy1">></span> <span class="kw4">void</span> seed<span class="br0">(</span>Sseq<span class="sy3">&</span> q<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> discard<span class="br0">(</span><span class="kw4">unsigned</span> <span class="kw4">long</span> <span class="kw4">long</span> z<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
<span class="kw4">const</span> Engine<span class="sy3">&</span> base<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span> <span class="br0">{</span> <span class="kw1">return</span> e<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">private</span><span class="sy4">:</span>
|
|
Engine e<span class="sy4">;</span> <span class="co1">// 仅用于阐释</span>
|
|
<span class="kw4">int</span> n<span class="sy4">;</span> <span class="co1">// 仅用于阐释</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::independent_bits_engine">类模板 <span class="t-lc"><a href="cpp-numeric-random-independent_bits_engine.html">std::independent_bits_engine</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Engine, size_t w, <span class="kw1">class</span> UIntType<span class="sy1">></span>
|
|
<span class="kw1">class</span> independent_bits_engine <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> UIntType<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 引擎特征</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type min<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="nu0">0</span><span class="sy4">;</span> <span class="br0">}</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type max<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="coMULTI">/* pow(2, w) - 1 */</span><span class="sy4">;</span> <span class="br0">}</span>
|
|
|
|
<span class="co1">// 构造函数与播种函数</span>
|
|
independent_bits_engine<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> independent_bits_engine<span class="br0">(</span><span class="kw4">const</span> Engine<span class="sy3">&</span> e<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> independent_bits_engine<span class="br0">(</span>Engine<span class="sy3">&&</span> e<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> independent_bits_engine<span class="br0">(</span>result_type s<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Sseq<span class="sy1">></span> <span class="kw1">explicit</span> independent_bits_engine<span class="br0">(</span>Sseq<span class="sy3">&</span> q<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> seed<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> seed<span class="br0">(</span>result_type s<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Sseq<span class="sy1">></span> <span class="kw4">void</span> seed<span class="br0">(</span>Sseq<span class="sy3">&</span> q<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> discard<span class="br0">(</span><span class="kw4">unsigned</span> <span class="kw4">long</span> <span class="kw4">long</span> z<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
<span class="kw4">const</span> Engine<span class="sy3">&</span> base<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span> <span class="br0">{</span> <span class="kw1">return</span> e<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">private</span><span class="sy4">:</span>
|
|
Engine e<span class="sy4">;</span> <span class="co1">// 仅用于阐释</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::shuffle_order_engine">类模板 <span class="t-lc"><a href="cpp-numeric-random-shuffle_order_engine.html">std::shuffle_order_engine</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Engine, size_t k<span class="sy1">></span>
|
|
<span class="kw1">class</span> shuffle_order_engine <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> <span class="kw1">typename</span> Engine<span class="sy4">::</span><span class="me2">result_type</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 引擎特征</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> size_t table_size <span class="sy1">=</span> k<span class="sy4">;</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type min<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> Engine<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type max<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> Engine<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span>
|
|
|
|
<span class="co1">// 构造函数与播种函数</span>
|
|
shuffle_order_engine<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> shuffle_order_engine<span class="br0">(</span><span class="kw4">const</span> Engine<span class="sy3">&</span> e<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> shuffle_order_engine<span class="br0">(</span>Engine<span class="sy3">&&</span> e<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> shuffle_order_engine<span class="br0">(</span>result_type s<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Sseq<span class="sy1">></span> <span class="kw1">explicit</span> shuffle_order_engine<span class="br0">(</span>Sseq<span class="sy3">&</span> q<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> seed<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> seed<span class="br0">(</span>result_type s<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Sseq<span class="sy1">></span> <span class="kw4">void</span> seed<span class="br0">(</span>Sseq<span class="sy3">&</span> q<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> discard<span class="br0">(</span><span class="kw4">unsigned</span> <span class="kw4">long</span> <span class="kw4">long</span> z<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
<span class="kw4">const</span> Engine<span class="sy3">&</span> base<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span> <span class="br0">{</span> <span class="kw1">return</span> e<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">private</span><span class="sy4">:</span>
|
|
Engine e<span class="sy4">;</span> <span class="co1">// 仅用于阐释</span>
|
|
result_type V<span class="br0">[</span>k<span class="br0">]</span><span class="sy4">;</span> <span class="co1">// 仅用于阐释</span>
|
|
result_type Y<span class="sy4">;</span> <span class="co1">// 仅用于阐释</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E5.B8.A6.E9.A2.84.E5.AE.9A.E4.B9.89.E5.BD.A2.E5.8F.82.E7.9A.84.E5.BC.95.E6.93.8E.E5.8F.8A.E5.BC.95.E6.93.8E.E9.80.82.E9.85.8D.E5.99.A8">带预定义形参的引擎及引擎适配器</span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">using</span> minstd_rand0 <span class="sy1">=</span>
|
|
linear_congruential_engine<span class="sy1"><</span>uint_fast32_t, <span class="nu0">16</span><span class="st0">'807, 0, 2'</span><span class="nu0">147</span><span class="st0">'483'</span><span class="nu0">647</span><span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">using</span> minstd_rand <span class="sy1">=</span>
|
|
linear_congruential_engine<span class="sy1"><</span>uint_fast32_t, <span class="nu0">48</span><span class="st0">'271, 0, 2'</span><span class="nu0">147</span><span class="st0">'483'</span><span class="nu0">647</span><span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">using</span> mt19937 <span class="sy1">=</span>
|
|
mersenne_twister_engine<span class="sy1"><</span>uint_fast32_t, <span class="nu0">32</span>, <span class="nu0">624</span>, <span class="nu0">397</span>, <span class="nu0">31</span>,
|
|
<span class="nu12">0x9908</span><span class="st0">'b0df, 11, 0xffff'</span>ffff, <span class="nu0">7</span>, <span class="nu12">0x9d2c</span><span class="st0">'5680, 15, 0xefc6'</span><span class="nu8">0000</span>, <span class="nu0">18</span>, <span class="nu0">1</span><span class="st0">'812'</span><span class="nu0">433</span><span class="st0">'253>;
|
|
using mt19937_64 =
|
|
mersenne_twister_engine<uint_fast64_t, 64, 312, 156, 31,
|
|
0xb502'</span>6f5a<span class="st0">'a966'</span><span class="nu19">19e9</span>, <span class="nu0">29</span>, <span class="nu12">0x5555</span><span class="st0">'5555'</span><span class="nu0">5555</span><span class="st0">'5555, 17,
|
|
0x71d6'</span>7fff<span class="st0">'eda6'</span><span class="nu8">0000</span>, <span class="nu0">37</span>, <span class="nu12">0xfff7</span><span class="st0">'eee0'</span><span class="nu8">0000</span><span class="st0">'0000, 43, 6'</span><span class="nu0">364</span><span class="st0">'136'</span><span class="nu0">223</span><span class="st0">'846'</span><span class="nu0">793</span><span class="st0">'005>;
|
|
using ranlux24_base =
|
|
subtract_with_carry_engine<uint_fast32_t, 24, 10, 24>;
|
|
using ranlux48_base =
|
|
subtract_with_carry_engine<uint_fast64_t, 48, 5, 12>;
|
|
using ranlux24 = discard_block_engine<ranlux24_base, 223, 23>;
|
|
using ranlux48 = discard_block_engine<ranlux48_base, 389, 11>;
|
|
using knuth_b = shuffle_order_engine<minstd_rand0,256>;
|
|
using default_random_engine = /* 由实现定义 */;
|
|
}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB_std::random_device">类 <span class="t-lc"><a href="cpp-numeric-random-random_device.html">std::random_device</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">class</span> random_device <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> <span class="kw4">unsigned</span> <span class="kw4">int</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成器特征</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type min<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> numeric_limits<span class="sy1"><</span>result_type<span class="sy1">></span><span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span>
|
|
<span class="kw4">static</span> <span class="kw4">constexpr</span> result_type max<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> numeric_limits<span class="sy1"><</span>result_type<span class="sy1">></span><span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span>
|
|
|
|
<span class="co1">// 构造函数</span>
|
|
random_device<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> random_device<span class="br0">(</span><span class="coMULTI">/* 由实现定义 */</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> random_device<span class="br0">(</span><span class="kw4">const</span> string<span class="sy3">&</span> token<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
<span class="kw4">double</span> entropy<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 无复制函数</span>
|
|
random_device<span class="br0">(</span><span class="kw4">const</span> random_device<span class="sy3">&</span><span class="br0">)</span> <span class="sy1">=</span> delete<span class="sy4">;</span>
|
|
<span class="kw4">void</span> operator<span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> random_device<span class="sy3">&</span><span class="br0">)</span> <span class="sy1">=</span> delete<span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB_std::seed_seq">类 <span class="t-lc"><a href="cpp-numeric-random-seed_seq.html">std::seed_seq</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">class</span> seed_seq <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> uint_least32_t<span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数</span>
|
|
seed_seq<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
seed_seq<span class="br0">(</span>initializer_list<span class="sy1"><</span>T<span class="sy1">></span> il<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> InputIt<span class="sy1">></span>
|
|
seed_seq<span class="br0">(</span>InputIt begin, InputIt end<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RandomAccessIt<span class="sy1">></span>
|
|
<span class="kw4">void</span> generate<span class="br0">(</span>RandomAccessIt begin, RandomAccessIt end<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
size_t size<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> OutputIt<span class="sy1">></span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span>OutputIt dest<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 无复制函数</span>
|
|
seed_seq<span class="br0">(</span><span class="kw4">const</span> seed_seq<span class="sy3">&</span><span class="br0">)</span> <span class="sy1">=</span> delete<span class="sy4">;</span>
|
|
<span class="kw4">void</span> operator<span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> seed_seq<span class="sy3">&</span><span class="br0">)</span> <span class="sy1">=</span> delete<span class="sy4">;</span>
|
|
|
|
<span class="kw1">private</span><span class="sy4">:</span>
|
|
vector<span class="sy1"><</span>result_type<span class="sy1">></span> v<span class="sy4">;</span> <span class="co1">// 仅用于阐释</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::uniform_int_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-uniform_int_distribution.html">std::uniform_int_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> IntType <span class="sy1">=</span> <span class="kw4">int</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> uniform_int_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> IntType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
uniform_int_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> uniform_int_distribution<span class="br0">(</span><span class="nu0">0</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> uniform_int_distribution<span class="br0">(</span>IntType a,
|
|
IntType b <span class="sy1">=</span> numeric_limits<span class="sy1"><</span>IntType<span class="sy1">></span><span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> uniform_int_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
result_type a<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type b<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::uniform_real_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-uniform_real_distribution.html">std::uniform_real_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> uniform_real_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> RealType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
uniform_real_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> uniform_real_distribution<span class="br0">(</span><span class="nu16">0.0</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> uniform_real_distribution<span class="br0">(</span>RealType a, RealType b <span class="sy1">=</span> <span class="nu16">1.0</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> uniform_real_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
result_type a<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type b<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB_std::bernoulli_distribution">类 <span class="t-lc"><a href="cpp-numeric-random-bernoulli_distribution.html">std::bernoulli_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">class</span> bernoulli_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> <span class="kw4">bool</span><span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
bernoulli_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> bernoulli_distribution<span class="br0">(</span><span class="nu16">0.5</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> bernoulli_distribution<span class="br0">(</span><span class="kw4">double</span> p<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> bernoulli_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
<span class="kw4">double</span> p<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::binomial_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-binomial_distribution.html">std::binomial_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> IntType <span class="sy1">=</span> <span class="kw4">int</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> binomial_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> IntType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
binomial_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> binomial_distribution<span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> binomial_distribution<span class="br0">(</span>IntType t, <span class="kw4">double</span> p <span class="sy1">=</span> <span class="nu16">0.5</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> binomial_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
IntType t<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">double</span> p<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::geometric_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-geometric_distribution.html">std::geometric_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> IntType <span class="sy1">=</span> <span class="kw4">int</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> geometric_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> IntType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
geometric_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> geometric_distribution<span class="br0">(</span><span class="nu16">0.5</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> geometric_distribution<span class="br0">(</span><span class="kw4">double</span> p<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> geometric_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
<span class="kw4">double</span> p<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::negative_binomial_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-negative_binomial_distribution.html">std::negative_binomial_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> IntType <span class="sy1">=</span> <span class="kw4">int</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> negative_binomial_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> IntType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
negative_binomial_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> negative_binomial_distribution<span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> negative_binomial_distribution<span class="br0">(</span>IntType k, <span class="kw4">double</span> p <span class="sy1">=</span> <span class="nu16">0.5</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> negative_binomial_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
IntType k<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">double</span> p<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::poisson_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-poisson_distribution.html">std::poisson_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> IntType <span class="sy1">=</span> <span class="kw4">int</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> poisson_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> IntType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
poisson_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> poisson_distribution<span class="br0">(</span><span class="nu16">1.0</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> poisson_distribution<span class="br0">(</span><span class="kw4">double</span> mean<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> poisson_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
<span class="kw4">double</span> mean<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::exponential_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-exponential_distribution.html">std::exponential_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> exponential_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> RealType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
exponential_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> exponential_distribution<span class="br0">(</span><span class="nu16">1.0</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> exponential_distribution<span class="br0">(</span>RealType lambda<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> exponential_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
RealType lambda<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::gamma_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-gamma_distribution.html">std::gamma_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> gamma_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> RealType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
gamma_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> gamma_distribution<span class="br0">(</span><span class="nu16">1.0</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> gamma_distribution<span class="br0">(</span>RealType alpha, RealType beta <span class="sy1">=</span> <span class="nu16">1.0</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> gamma_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
RealType alpha<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
RealType beta<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::weibull_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-weibull_distribution.html">std::weibull_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> weibull_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> RealType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
weibull_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> weibull_distribution<span class="br0">(</span><span class="nu16">1.0</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> weibull_distribution<span class="br0">(</span>RealType a, RealType b <span class="sy1">=</span> <span class="nu16">1.0</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> weibull_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
RealType a<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
RealType b<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::extreme_value_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-extreme_value_distribution.html">std::extreme_value_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> extreme_value_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> RealType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
extreme_value_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> extreme_value_distribution<span class="br0">(</span><span class="nu16">0.0</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> extreme_value_distribution<span class="br0">(</span>RealType a, RealType b <span class="sy1">=</span> <span class="nu16">1.0</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> extreme_value_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
RealType a<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
RealType b<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::normal_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-normal_distribution.html">std::normal_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> normal_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> RealType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
normal_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> normal_distribution<span class="br0">(</span><span class="nu16">0.0</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> normal_distribution<span class="br0">(</span>RealType mean, RealType stddev <span class="sy1">=</span> <span class="nu16">1.0</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> normal_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
RealType mean<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
RealType stddev<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::lognormal_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-lognormal_distribution.html">std::lognormal_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> lognormal_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> RealType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
lognormal_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> lognormal_distribution<span class="br0">(</span><span class="nu16">0.0</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> lognormal_distribution<span class="br0">(</span>RealType m, RealType s <span class="sy1">=</span> <span class="nu16">1.0</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> lognormal_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
RealType m<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
RealType s<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::chi_squared_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-chi_squared_distribution.html">std::chi_squared_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> chi_squared_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> RealType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
chi_squared_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> chi_squared_distribution<span class="br0">(</span><span class="nu16">1.0</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> chi_squared_distribution<span class="br0">(</span>RealType n<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> chi_squared_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
RealType n<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::cauchy_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-cauchy_distribution.html">std::cauchy_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> cauchy_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> RealType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
cauchy_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> cauchy_distribution<span class="br0">(</span><span class="nu16">0.0</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> cauchy_distribution<span class="br0">(</span>RealType a, RealType b <span class="sy1">=</span> <span class="nu16">1.0</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> cauchy_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
RealType a<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
RealType b<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::fisher_f_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-fisher_f_distribution.html">std::fisher_f_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> fisher_f_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> RealType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
fisher_f_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> fisher_f_distribution<span class="br0">(</span><span class="nu16">1.0</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> fisher_f_distribution<span class="br0">(</span>RealType m, RealType n <span class="sy1">=</span> <span class="nu16">1.0</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> fisher_f_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
RealType m<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
RealType n<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::student_t_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-student_t_distribution.html">std::student_t_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> student_t_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> RealType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
student_t_distribution<span class="br0">(</span><span class="br0">)</span> <span class="sy4">:</span> student_t_distribution<span class="br0">(</span><span class="nu16">1.0</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
|
|
<span class="kw1">explicit</span> student_t_distribution<span class="br0">(</span>RealType n<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> student_t_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
RealType n<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::discrete_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-discrete_distribution.html">std::discrete_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> IntType <span class="sy1">=</span> <span class="kw4">int</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> discrete_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> IntType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
discrete_distribution<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> InputIt<span class="sy1">></span>
|
|
discrete_distribution<span class="br0">(</span>InputIt firstW, InputIt lastW<span class="br0">)</span><span class="sy4">;</span>
|
|
discrete_distribution<span class="br0">(</span>initializer_list<span class="sy1"><</span><span class="kw4">double</span><span class="sy1">></span> wl<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> UnaryOperation<span class="sy1">></span>
|
|
discrete_distribution<span class="br0">(</span>size_t nw, <span class="kw4">double</span> xmin, <span class="kw4">double</span> xmax, UnaryOperation fw<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> discrete_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
vector<span class="sy1"><</span><span class="kw4">double</span><span class="sy1">></span> probabilities<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::piecewise_constant_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-piecewise_constant_distribution.html">std::piecewise_constant_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> piecewise_constant_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> RealType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
piecewise_constant_distribution<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> InputItB, <span class="kw1">class</span> InputItW<span class="sy1">></span>
|
|
piecewise_constant_distribution<span class="br0">(</span>InputItB firstB, InputItB lastB, InputItW firstW<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> UnaryOperation<span class="sy1">></span>
|
|
piecewise_constant_distribution<span class="br0">(</span>initializer_list<span class="sy1"><</span>RealType<span class="sy1">></span> bl, UnaryOperation fw<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> UnaryOperation<span class="sy1">></span>
|
|
piecewise_constant_distribution<span class="br0">(</span>size_t nw, RealType xmin, RealType xmax,
|
|
UnaryOperation fw<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> piecewise_constant_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
vector<span class="sy1"><</span>result_type<span class="sy1">></span> intervals<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
vector<span class="sy1"><</span>result_type<span class="sy1">></span> densities<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::piecewise_linear_distribution">类模板 <span class="t-lc"><a href="cpp-numeric-random-piecewise_linear_distribution.html">std::piecewise_linear_distribution</a></span></span></h4>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> RealType <span class="sy1">=</span> <span class="kw4">double</span><span class="sy1">></span>
|
|
<span class="kw1">class</span> piecewise_linear_distribution <span class="br0">{</span>
|
|
<span class="kw1">public</span><span class="sy4">:</span>
|
|
<span class="co1">// 类型</span>
|
|
<span class="kw1">using</span> result_type <span class="sy1">=</span> RealType<span class="sy4">;</span>
|
|
<span class="kw1">using</span> param_type <span class="sy1">=</span> <span class="coMULTI">/* 未指明 */</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 构造函数与重置函数</span>
|
|
piecewise_linear_distribution<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> InputItB, <span class="kw1">class</span> InputItW<span class="sy1">></span>
|
|
piecewise_linear_distribution<span class="br0">(</span>InputItB firstB, InputItB lastB, InputItW firstW<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> UnaryOperation<span class="sy1">></span>
|
|
piecewise_linear_distribution<span class="br0">(</span>initializer_list<span class="sy1"><</span>RealType<span class="sy1">></span> bl, UnaryOperation fw<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> UnaryOperation<span class="sy1">></span>
|
|
piecewise_linear_distribution<span class="br0">(</span>size_t nw, RealType xmin, RealType xmax,
|
|
UnaryOperation fw<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">explicit</span> piecewise_linear_distribution<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 生成函数</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> URBG<span class="sy1">></span>
|
|
result_type operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>URBG<span class="sy3">&</span> g, <span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 属性函数</span>
|
|
vector<span class="sy1"><</span>result_type<span class="sy1">></span> intervals<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
vector<span class="sy1"><</span>result_type<span class="sy1">></span> densities<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
param_type param<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="kw4">void</span> param<span class="br0">(</span><span class="kw4">const</span> param_type<span class="sy3">&</span> parm<span class="br0">)</span><span class="sy4">;</span>
|
|
result_type min<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
result_type max<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="visualClear"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|