XorShift
ナビゲーションに移動
検索に移動
XorShift(えっくすおあしふと)とは乱数生成アルゴリズムの1つである。
内容
いきなりだが、コードを書く。
uint32_t xor(void) { static uint32_t y = 2463534242; y = y ^ (y << 13); y = y ^ (y >> 17); return y = y ^ (y << 5); }
Cを知らない人のために説明すると、 ①値と(値を2の13乗倍)のXORを計算する ②①で計算した値と(①で計算した値を2の17乗で割ったもの)のXORを計算する ③②で計算した値と(②で計算した値の2の5乗倍)のXORを計算する というアルゴリズムである。シード値を設定したい場合はxに大きめの適当な数を入れておく。
特徴
XorもShiftも一瞬で計算できるので、とても速い。またそれなりに性質の良い乱数が生成できる。 またメモリを消費しない。このため非常にゲームに向いている。[1]
関連項目
- ↑ 平山 尚、ゲームプログラマになる前に覚えておきたい技術 p773