【发布时间】:2009-10-12 19:45:08
【问题描述】:
我需要能够生成一个随机数,然后使用该数字在运行中用布尔值播种理论上无限大的 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) 之间的值。其次,我使用的语言没有种子功能。
我敢肯定,要么有一种我没有看到的简单方法来做到这一点,要么是分形领域中的某些东西可能对我有所帮助。有人知道怎么做吗?
【问题讨论】:
-
这是什么语言,为什么它不允许你为生成器做种?
-
Javascript。不知道为什么它不允许种子,它就是不允许。