Permuted congruential generator
Permuted congruential generator (PCG) は2014年に発表された擬似乱数生成器。線形合同法の出力を加工することで統計的性質を改善したものである。高速、省メモリかつ小さいコードサイズで非常に良い統計的性質を示す。
PCGは古典的な線形合同法と3つの点で異なる。
線形合同法で使われる状態が大きい(通常、出力の2倍)。
法として2の冪を使う(これにより偏りがなく最長の周期を効果的に実装できる)。
状態は直接出力されるのではなく、最も周期の長いビットによってビット回転やビットシフトの量が決まり、出力に影響する。
下位ビットの短い周期という線形合同法の弱点は状態に依存するビット回転量により解決する。