【发布时间】:2012-08-29 17:00:52
【问题描述】:
public float randomNumber(float x, float y, Random rnd)
{
//Return a random number between 0 - 1
}
所以我的问题是我需要与 x 和 y 相关的随机数。如果我传入 x = 10, y = 5 并且当我再次传入 x = 10, y = 5 时得到 0.34567f,我需要再次得到 0.34567f 的结果。有谁知道这样做的方法吗?
编辑:根据下面的回复,我意识到我遗漏了一些东西。我传入 Random 对象的原因是它已在其他地方预先播种。因此,如果我为种子为 50 的随机对象传入 x = 10, y = 5 并输出 0.34567f 对种子为 51 的随机对象做同样的事情应该会给我一些不同的东西。
【问题讨论】:
-
可能有点矫枉过正,但您可以使用加密哈希。 SHA1 或 MD5 什么的。这样可以保证为相同的输入获得相同的输出。
-
听起来你真的不需要一个 random 数字,你只需要一个基于两个浮点数的哈希。搜索这些字词可能会给您带来更好的结果。