概要 Xorshift によって生成された乱数列について、いくつかの場所の xor を取ると seed に依存せずに になる。 Xorshift Xorshift - Wikipedia 説明は Wikipedia に丸投げする。 本記事では簡略化のため、実装例の一番上にある周期 の実装について議論する。 Zobrist hashing 個の要素があるとして、要素 に乱数 を割り当てる。 このとき、集合 の hash を で定める。 ただし は bitwise xor とする。 この hashing の方法を Zobrist hashing と呼ぶ。 hash の衝突 異なる集合 について となることを衝突と呼ぶ。 Zobrist hashing の場合 であるから、 かつ となるような が分かれば衝突を引き起こすことができる。 結論から言うと、 を Xorshift が 番目に出力した値