【发布时间】:2013-08-13 20:03:02
【问题描述】:
我想不出一个好的方法来做到这一点,如果可能的话,希望能得到一些帮助!
恐怕我还没有任何代码可以发布,因为我还没有到那一步。
我需要从 0-999 范围内的 3 个(或更多)参数生成一系列值。
对于给定的输入,该值必须始终相同,但在上下边界之间分布公平,以便显得随机。
例如:
function (1, 1, 1) = 423
function (1, 1, 2) = 716
function (1, 2, 1) = 112
这些必须相当快地生成,我的意思是我应该能够在网页加载期间生成 100-200 而没有明显的延迟。
该方法必须在 C# 和 JavaScript 中都可以使用,否则我可能会使用 CRC32 或 MD5 哈希算法。
如果有帮助,这将用作程序生成例程的一部分。
我之前曾尝试过问这个问题,但我认为我的解释质量差让我失望。
如果措辞不当,我深表歉意。如果是这样,请告诉我,我会尝试进一步解释。
非常感谢您的帮助。
【问题讨论】:
-
您可能会使用
Random类,从而提供一个特定的种子值,您将基于输入的数字。也许从 3 个整数输入中构建一个散列以生成一个新整数然后您将其输入您的new Random(seed)实例。编辑:哦,JavaScript 也...没关系! :) -
是否需要 C# 和 JS 为相同的输入生成相同的输出?
-
我理解你的问题......你需要做一些研究并实际尝试一些东西。查看种子随机数。 See here 和 an example for random numbers in a range
-
如果不出意外,你可以看看 perlin 噪声
-
如果你想要的用途类似于@ChrisSinclair 解释的那样,你可以计算每个数字:
number ^ positionand sum all the results。
标签: c# javascript procedural-generation