【发布时间】:2016-12-10 00:34:25
【问题描述】:
这就是我想要实现的目标:
public double NextMin (double min)
{
//Returns a double that is greater than or equal to "min".
}
public double NextMax (double max)
{
//Returns a double that is lesser than "max".
}
我尝试了范围扩展,但由于溢出,它返回了很多“无限”:
// Range expanding for min
random.NextDouble() * (double.MaxValue - min) + min;
// Range expanding for max
random.NextDouble() * (max - double.MinValue) + double.MinValue;
澄清:我需要尽可能大的返回范围,这意味着它们应该包括负数和正数。
【问题讨论】:
-
为什么要这样做?这是 X-Y 问题吗?
-
@Enigmativity 我将生成一个程序宇宙,我需要一些随机向量采样。我的算法需要这些方法。
-
如果您假设
double.MaxValue == 10.0和double.MinValue == -10.0然后double.MaxValue - double.MinValue == 20.0,但这大于double的允许范围(在此假设下)。因此,您遇到无穷大问题的原因。