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
참고 항목
참조
independent_bits_engine::base_type
independent_bits_engine::discard
independent_bits_engine::independent_bits_engine