我需要能够生成一个随机数,然后使用该数字在运行中用布尔值播种理论上无限大的 2d 平面。我需要一个可以调用的函数,它具有三个输入(x、y 和随机种子)并返回一个伪随机结果:
int r = random()
//...
var value_for_point = f(x,y,r);
如果我要使用此函数用 1 和 0 填充 10x10 数组,理想情况下,它看起来与我在进行过程中要求每个单元格的随机值相同/相似,即白噪声。它不必是完美的——它不是用于统计分析。我只需要能够在给定相同随机数的情况下重新创建数组。
出于两个原因,我不能简单地为随机数生成器播种。首先,我需要这个函数基于 x 和 y。我可以调用这个函数来填充 (0,0) 和 (10, 10) 之间的数组,然后再请求 (-10,-5) 和 (3,4) 之间的值。其次,我使用的语言没有种子功能。
我敢肯定,要么有一种我没有看到的微不足道的方法来做到这一点,要么是分形领域中的某些东西可能对我有所帮助。有人知道怎么做吗?