■ Xorshift
Xorshiftは疑似乱数生成法の1つである。ジョージ・マーサグリアが2003年に開発した。演算が排他的論理和とビットシフトのみであるため高速で、かつ線形合同法よりも長周期・高精度であることが特徴である。
Xorshiftアルゴリズム[1]のCによる実装例[2]:
uint32_t xor128(void) {
static uint32_t x = 123456789;
static uint32_t y = 362436069;
static uint32_t z = 521288629;
static uint32_t w = 88675123;
uint32_t t;
t = x ^ (x << 11);
x = y; y = z; z = w;
return w = (w ^ (w >> 19)) ^ (t ^ (t >> 8));
}
このアルゴリズムの周期は 2128 − 1 で、Diehardテストをパスしている。