是否存在一种算法,可以有效地将 uint32 转换为不同的 uint32,并在给定可变的随机种子时产生 1:1 的映射?
我对此的初步方向是一种算法,其中种子以某种方式表达数字中要重新排列的位(这样 0000 0101 就变成了 0100 1000,种子为 [0->6, 2->3]),但我不确定如何生成一种有效地进行混洗的方法。
一些限制:
- 生成从种子进行改组的算法不需要非常快
- 实际上,对 uint32 执行 shuffle 应该很快
- 对于给定的种子,输出中不应有重复(唯一的 uint32 产生唯一的 uint32)