std::seed_seq
来自cppreference.com
数值库
伪随机数生成
均匀随机位生成器 | ||||
(C++20)
|
||||
引擎及引擎适配器 | ||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
非确定性生成器 | ||||
(C++11)
|
||||
分布 | ||||
均匀分布 | ||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
伯努利分布 | ||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
泊松分布 | ||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
正态分布 | ||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
采样分布 | ||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
种子序列 | ||||
seed_seq
(C++11)
|
||||
C 库 | ||||
std::seed_seq
成员函数 | ||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
||||
(C++11)
|
在标头
<random>
定义
|
||
class
seed_seq;
|
(C++11 起) | |
std::seed_seq
消耗整数值数列,并基于消耗的数据生成请求数量的无符号整数值 i
, 0 ≤ i < 232
。产生的值分布在整个
32 位范围上,即使消耗的值接近。
它提供手段,以给定小种子或分布凄惨的初始种子序列,播种大量随机数引擎或播种要求大量熵的随机数。
std::seed_seq
满足种子序列 (SeedSequence)
的要求。
成员类型
成员类型 | 定义 |
result_type (C++11)
|
std::uint_least32_t |
成员函数
(C++11)
|
构造并播种 std::seed_seq 对象 (公开成员函数) |
operator=
[被删除](C++11)
|
seed_seq 不可赋值 (公开成员函数) |
(C++11)
|
计算偏差消除的均匀分布的 32 位值 (公开成员函数) |
(C++11)
|
获得存储于 std::seed_seq 的 32 位值的数量 (公开成员函数) |
(C++11)
|
获得存储于 std::seed_seq 的 32 位值 (公开成员函数) |
示例
运行此代码
#include <random> #include <cstdint> #include <iostream> int main() { std::seed_seq seq{1,2,3,4,5}; std::vector<std::uint32_t> seeds(10); seq.generate(seeds.begin(), seeds.end()); for (std::uint32_t n : seeds) { std::cout << n << '\n'; } }
输出:
4204997637 4246533866 1856049002 1129615051 690460811 1075771511 46783058 3904109078 1534123438 1495905678