如果给出种子和某些参数,我如何确定性地生成看似随机的数字?

时间:2015-04-23 17:33:25

标签: random noise

我写了一个Perlin噪声发生器,但这取决于非常不方便的东西:我必须预先生成一个随机向量网格。

理想情况下,我希望有一些函数double f(int x, int y, int z, int seed)(或者类似的)在给定相同参数的情况下始终返回相同的值,但其结果看起来足够随机,可以在小范围的x,y上生成噪声,和z。然后,在我的噪声生成算法中,它不是索引到预先计算的网格中,而是可以动态生成“随机”向量。通过这种方式,我可以在仅以整数限制为界的坐标处对噪声函数进行采样,而不是受到内存限制的限制。

这样的事情可能吗?显然,随机性不会像预先计算向量那样高质量,但我只需要在视觉上看起来足够随机的东西。有没有现成的方法呢?

1 个答案:

答案 0 :(得分:1)

这称为哈希函数。有许多非常好的:对于您的使用,安全性不是速度问题,我会使用类似MD5或SHA1的东西。