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 의 모든 요소는 0으로 설정됩니다.
-
시퀀스
K
의 첫 번째 요소는
value mod 2
w
로 설정되고, 나머지 요소들은 0으로 설정됩니다. - j 의 값은 n - 1 로 설정됩니다.
3)
시드 시퀀스
seq
를 사용하여 엔진을 생성합니다. 엔진의 초기
상태
는 다음과 같이 결정됩니다:
[1]
- 시퀀스 X 의 모든 요소는 0으로 설정됩니다.
- ( 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)
상수.
예외
참고 항목
|
엔진의 현재 상태를 설정함
(public member function) |
|
|
엔진의 현재 카운터를 설정함
(public member function) |