gpt4 book ai didi

c++ - 如何枚举最小值和最大值之间的所有浮点值

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:08:10 25 4
gpt4 key购买 nike

对于用于唯一浮点值的高效随机数生成器,我想了解有关浮点值的更多信息。我将把我的问题分成两部分。

  1. 如何找出最小值和最大值(包括两者)之间的 float ?

我正在寻找方法的实现:

size_t numOfFloats(const float min, const float max);

在给定数据类型的最大精度的情况下考虑所有可能的浮点值。

  1. 如何枚举介于最小值和最大值(包括两者)之间的所有可能的浮点值?

我正在寻找方法的实现:

vector<float> enumAllFloats(const float min, const float max);

返回的 vector 的大小应始终等于我第一个问题的方法的返回值。

如果需要,允许使用 C++11。

最佳答案

您可以使用 nextafterf枚举所有可表示的 float :

vector<float> enumAllFloats(const float tmin, const float tmax) {
vector<float> res;
for (float x = tmin; x < tmax; x = nextafterf(x, tmax))
res.push_back(x);
res.push_back(tmax);
return res;
}

关于c++ - 如何枚举最小值和最大值之间的所有浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31473728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com