【发布时间】:2021-02-11 22:20:38
【问题描述】:
从一个数 x,我想要一个函数来得到一个随机数 y,均匀分布。对于相同的 x,函数应该返回相同的 y。
我试过了:
float func(int x) {
return new Random(x).nextFloat();
}
但显然只有种子 Random 提供的数字序列是均匀分布的,而不是第一个值。这可能吗?
【问题讨论】:
-
我不关注。从
Random给出的数字总是均匀分布在给定的范围之间。在您的情况下,所有现有浮点数的范围。所以nextFloat()会给你任何float,所有的机会都差不多。请更准确,并准确地解释你想要什么,可能有例子。 -
你考虑过使用
Object.hashCode()吗? -
NextFloat() 为您提供从 0 到几乎 1 的浮点数。随机数生成器以 x 为种子。