다음을 통해 공유


independent_bits_engine Class

임의 일련 번호를 지정한 비트로 재패키징에 비트 수가 기본 엔진에 의해 반환 되는 값을 생성 합니다.

template<class Engine,
    size_t W, class UIntType>
    class independent_bits_engine {
public:
    typedef Engine base_type;
    typedef typename base_type::result_type result_type;
    independent_bits_engine();
    explicit independent_bits_engine(const base_type& eng);
    explicit independent_bits_engine(result_type x0);
    explicit independent_bits_engine(seed_seq& seq);
    void seed();
    void seed(result_type x0);
    void seed(seed_seq& seq);
    const base_type& base() const;
    static const result_type min();
    static const result_type max();
    result_type operator()();
    void discard(unsigned long long count);
private:
    Engine stored_eng;
    int count;
    };

매개 변수

  • Engine
    저장된 엔진 형식입니다.

  • W
    W 엔진 매개 변수입니다.

  • UIntType
    부호 없는 정수 결과 형식입니다.

설명

이 템플릿 클래스에 설명 된 <random> 는 생성 값 기본 엔진에 의해 반환 되는 값에서 비트 리 팩으로.각 인 W-비트 값으로 구성 되어 N 필드 결합을 다음과 같이 하십시오.

  • 첫 번째 N0 필드의 하위 순서 구성 W0 기본 엔진에 의해 반환 된 값의 비트 미만 Y0, 배수를 내림차순으로 압축 합니다.너무 큰 값은 무시 됩니다.

  • 나머지 N - N0 필드의 하위 순서 구성 W0 + 1 기본 엔진에 의해 반환 된 값의 비트 미만 Y1, 배수를 내림차순으로 압축 합니다.너무 큰 값은 무시 됩니다.

매개 변수 (다른 W)는 다음과 같이 결정 됩니다.

  • R기본 엔진에 의해 반환 되는 값의 전체 범위 (stored_eng.max() - stored_eng.min() + 1, 줄바꿈 없음 가정할 때 발생 합니다.)

  • M가 floor(log2(R))입니다.

  • N처음에 W / M + (W % M != 0).

  • W0가 W / N입니다.

  • N0가 N - W % N입니다.

  • Y0가 (R >> W0) << W0입니다.

  • Y1가 (R >> W0 + 1) << W0 + 1입니다.

  • 경우 Y0 / N < R - Y0 다음 N 증가 및 이전 네 개의 매개 변수는 redetermined입니다.

엔진의 상태를 상태입니다 stored_eng.템플릿 인수의 값이 W 0 보다 크고 크지에서 나타낼 수 있는 비트 수가 있어야 result_type.

요구 사항

헤더: <random>

네임 스페이스: std

참고 항목

참조

<random>

independent_bits_engine::base

independent_bits_engine::base_type

independent_bits_engine::discard

independent_bits_engine::independent_bits_engine

independent_bits_engine::operator()

independent_bits_engine::seed