Xoshiro128
クラス · 疑似乱数生成器 xoshiro128++
struct Xoshiro128 : internal::RandomEngineBase<Xoshiro128, std::array<std::uint32_t, 4>, std::uint32_t>;
概要
疑似乱数生成器 xoshiro128++
計算量
- すべての操作が $O(1)$
構築・破棄
| 名前 | 説明 | 計算量 |
|---|---|---|
(constructor) |
(1) 既定seedで構築する (2) 指定seedで構築する |
$O(1)$ |
メンバ関数
| 名前 | 説明 | 計算量 |
|---|---|---|
serialize |
現在の状態を返す (基底 internal::RandomEngineBase から継承) |
$O(1)$ |
deserialize |
保存した状態を復元する (基底 internal::RandomEngineBase から継承) |
$O(1)$ |
rand_range |
a以上b以下の整数を偏りなく生成する(Lemire の方法) (基底 internal::RandomEngineBase から継承) |
期待 $O(1)$ |
random |
0.0以上1.0未満の浮動小数点数を生成 (基底 internal::RandomEngineBase から継承) |
$O(1)$ |
演算子
| 名前 | 説明 | 計算量 |
|---|---|---|
operator() |
次の32bit乱数を返す | $O(1)$ |
operator== |
状態が等しいか返す (基底 internal::RandomEngineBase から継承) |
$O(1)$ |
静的メンバ関数
| 名前 | 説明 | 計算量 |
|---|---|---|
min |
生成しうる最小値を返す (基底 internal::RandomEngineBase から継承) |
$O(1)$ |
max |
生成しうる最大値を返す (基底 internal::RandomEngineBase から継承) |
$O(1)$ |
メンバ型
| 名前 | 説明 | 計算量 |
|---|---|---|
state_type |
内部状態の型 (基底 internal::RandomEngineBase から継承) |
型エイリアスで実行時計算量はない |
result_type |
生成結果の型 (基底 internal::RandomEngineBase から継承) |
型エイリアスで実行時計算量はない |
メンバの詳細
(constructor)
// (1)
constexpr Xoshiro128() noexcept;
// (2)
constexpr Xoshiro128(std::uint64_t seed) noexcept;
(1) 既定seedで構築する
- 計算量: $O(1)$
(2) 指定seedで構築する
- 計算量: $O(1)$
rand_range
constexpr result_type rand_range(result_type a, result_type b) noexcept;
(基底 internal::RandomEngineBase から継承)
a以上b以下の整数を偏りなく生成する(Lemire の方法)
- 戻り値: result_type [a, b]
- 計算量: 期待 $O(1)$
random
constexpr double random() noexcept;
(基底 internal::RandomEngineBase から継承)
0.0以上1.0未満の浮動小数点数を生成
- 戻り値: double [0, 1)
- 計算量: $O(1)$