std::philox_engine<UIntType,w,n,r,consts>:: philox_engine
From cppreference.net
<
cpp
|
numeric
|
random
|
philox engine
|
philox_engine
(
)
:
philox_engine
(
default_seed
)
{
}
|
(1) | (自 C++26 起) |
|
explicit
philox_engine
(
result_type value
)
;
|
(2) | (自 C++26 起) |
|
template
<
class
SeedSeq
>
explicit philox_engine ( SeedSeq & seq ) ; |
(3) | (自 C++26 起) |
|
philox_engine
(
const
philox_engine
&
other
)
;
|
(4) |
(自 C++26 起)
(隐式声明) |
构造伪随机数引擎。
1)
默认构造函数。
-
若默认构造的引擎类型为
std::philox4x32,其第10000次连续调用的生成值为 1955073260 。 -
若默认构造的引擎类型为
std::philox4x64,其第10000次连续调用的生成值为 3409172418970261260 。
2)
使用种子值
value
构造引擎。引擎的初始
状态
按如下方式确定:
[1]
- 序列 X 的所有元素均设为零。
-
序列
K
的首元素设为
value mod 2
w
,其余元素设为零。 - j 的值设为 n - 1 。
3)
使用种子序列
seq
构造引擎。引擎的初始
状态
按以下方式确定:
[1]
- 序列 X 的所有元素被设为零。
- 给定 ( w - 1 ) / 32 + 1 为 p ,序列 K 的元素通过以下步骤设置:
- 创建一个长度为 n / 2 * p 的虚构数组对象 a 。
- 调用 seq. generate ( a + 0 , a + n / 2 * p ) 。
-
对于每个在
[ 0 ,n / 2)范围内的整数 k ,将 K k 设为 (∑ p-1
i=0 a k·p+i ·2 32i
) mod 2 w
。
- j 的值被设为 n - 1 。
4)
复制构造函数。构造完成后,
*
this
==
other
为
true
。
目录 |
参数
| value | - | 用于初始化内部状态的种子值 |
| seq | - | 用于初始化内部状态的种子序列 |
复杂度
1,2)
常量。
3)
与
seq.generate
调用的复杂度相同。
4)
常量。
异常
参见
|
设置引擎的当前状态
(公开成员函数) |
|
|
设置引擎的当前计数器
(公开成员函数) |