置换同余生成器 置换同余生成器简称PCG英語Permuted congruential generator是一个用于产生伪随机数的算法开发于年该算法在线性同余生成器LCG的基础上增加了输出置换函数output permutation function以此优化LCG算法的统计性能因此PCG算法在拥有出色的统计性能的同时也拥有LCG算法代码小速度快状态小的特性 置换同余生成器PCG和线性同余生成器LCG的差别有三点在于 LCG的模数以及状态大小比较大状态大小一般为输出大小的二倍 PCG的核心使用的N次幂作为模数以此实现一个非常高效的全周期无偏差的伪随机数生成器 PCG的状态不会被直接输出而是经过输出置换函数计算后才输出 使用的N次幂作为模数的LCG算法普遍出现输出低位周期短小的问题而PCG通过输出置换函数解决了这个问题