如果我產生浮點值以下列方式:將「最小到最大」均勻實分佈產生Inf,-Inf還是NaN?
template <typename T>
T RandomFromRange(T low, T high){
std::random_device random_device;
std::mt19937 engine{random_device()};
std::uniform_real_distribution<T> dist(low, high);
return dist(engine);
}
template <typename T>
T GetRandom(){
return RandomFromRange
(std::numeric_limits<T>::min(),std::numeric_limits<T>::max());
}
//produce floating point values:
auto num1 = GetRandom<float>();
auto num2 = GetRandom<float>();
auto num3 = GetRandom<float>();
//...
是否有可能,我將永遠得到一個NaN
,Inf
或-Inf
?
鑑於沒有一個落入[min,max]範圍內,那麼大概不會。 –