名前空間
変種
操作

std::uniform_random_bit_generator

From cppreference.com
< cpp‎ | numeric‎ | random
 
 
 
 
ヘッダー <random> で定義
template< class G >

concept uniform_random_bit_generator =
    std::invocable<G&> && std::unsigned_integral<std::invoke_result_t<G&>> &&
    requires {
        { G::min() } -> std::same_as<std::invoke_result_t<G&>>;
        { G::max() } -> std::same_as<std::invoke_result_t<G&>>;
        requires std::bool_constant<(G::min() < G::max())>::value;

    };
(C++20以降)

コンセプト `uniform_random_bit_generator<G>` は、`G` が一様乱数ビットジェネレータの型であることを指定します。つまり、型 `G` のオブジェクトは、 unsigned integer 値を返す関数オブジェクトであり、可能な結果の範囲内の各値が(理想的には)等しい確率で返されるものです。

[編集] 意味的要件

`uniform_random_bit_generator<G>` は、`G` の任意のオブジェクト `g` が与えられた場合、以下を満たす場合にのみモデル化されます。

  • g() は範囲 [G::min()G::max()] に含まれること。
  • g() は償却定数時間複雑性を持つこと。

[編集] 注記

要件 std::bool_constant<(G::min() < G::max())>::value を満たすためには、`G::min()` と `G::max()` の両方が定数式である必要があり、比較の結果は true である必要があります。

English 日本語 中文(简体) 中文(繁體)