伪随机的一对一int32-> int32函数

Vla*_*kov 7 random algorithm integer bijection

我正在寻找一个int32-> int32函数

  • 双向(一对一对应)
  • 便宜至少在一个方向上计算
  • 将增加的序列0,1,2,3 ......转换成一个看起来像一个好的伪随机序列的序列(当参数变化较小时,〜半位翻转,没有明显的模式)

Jon*_*oni 10

乘以一个大的奇数和xor和一个不同的数.

双射:奇数具有2的乘法逆模幂,因此通过乘法乘以撤消乘法.当然,xor被另一个xor所取消.

这基本上是线性同余伪随机数发生器的工作原理.