Kyopro Library
読み取り中…
検索中…
一致する文字列を見つけられません
xor128.hpp
[詳解]
1
#
pragma
once
2
#
include
"../../kyopro_library/template.hpp"
3
4
/// @brief 疑似乱数生成
5
ull
Xor128
() {
6
static
bool
flag=
false
;
7
static
ull x=123456789,y=362436069,z=521288629,w=88675123;
8
if
(!flag) {
9
random_device seedgen;
10
w=seedgen();
11
flag=
true
;
12
}
13
ull t=x^(x<<11);
14
x=y,y=z,z=w;
15
return
w=(w^(w>>19))^(t^(t>>8));
16
}
17
ll
Xor128
(ll n) {
return
Xor128
(
)
%n; }
18
ll
Xor128
(ll l, ll r) {
return
Xor128
(
r-l
)
+l; }
//[l,r)
19
ld
Xor128Prob
() {
return
(ld)Xor128()/(ULLONG_MAX); }
Xor128
ll Xor128(ll l, ll r)
Definition
xor128.hpp:18
Xor128Prob
ld Xor128Prob()
Definition
xor128.hpp:19
Xor128
ull Xor128()
疑似乱数生成
Definition
xor128.hpp:5
Xor128
ll Xor128(ll n)
Definition
xor128.hpp:17
others
xor128.hpp
構築:
1.13.2