我有这个看起来像这样的随机浮点函数:
float randomFloat(float input)
{
std::mt19937 mt;
mt.seed(input);
std::uniform_real_distribution<float> dt(-1,1);
return dt(mt);
}
如您所见,该函数接受输入并返回介于 -1 和 1 之间的输出
但我的问题是,当我输入浮点数时,如果点左侧的数字相同。示例: (1.2, 1.52, 1.658, 1.01...) 随机浮点数将给出相同的值,(抱歉英语不好)
所以一个 1.5 的输入和另一个 1.2 的输入将给出相同的返回值,而一个 1.5 的输入和另一个 2.5 的输入将给出不同的值。我该如何解决 ?
请记住,我并没有试图准确地获得 randomFloat,我的问题有点复杂,但如果我能针对这个特定问题获得帮助,其他一切都会很容易实现,我这么说的原因是我不希望答案告诉我使用 random_device 或 mt 应该播种一次......我已经知道,如果你真的想知道,这就是我正在做的事情。
谢谢!