我正在寻找一种算法,在大范围的三个(或更好的n)维空间中生成伪随机数.当用种子初始化时,发生器应该能够为同一种子重复产生相同的数字.
但与编程语言中可用的大多数生成器不同,它不应仅返回序列中的下一个随机数,而是生成特定坐标的数字,无论请求的值是什么顺序.
应该认为空间的大小太大,无法在初始化时生成所有数字.在Java中它可能看起来像这样:
Random3D gen = new Random3D(seed);
int n1 = gen.getInt(3,0,6);
int n2 = gen.getInt(2,-3,1);
...
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
我通过使用java.util.Random编写一些代码在Java中尝试过,但结果的质量不是很好.