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
でエンジンを構築する。エンジンの初期
state
は以下のように決定される:
[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)
定数。
例外
関連項目
|
エンジンの現在の状態を設定する
(公開メンバ関数) |
|
|
エンジンの現在のカウンタを設定する
(公開メンバ関数) |