我正在寻找一种在开-开区间 (0,1) 上生成随机浮点数的有效方法。我目前有一个 RNG,它在 [0, (2^32)-1] 的闭闭区间上生成随机整数。我已经在区间 [0,1) 上创建了一个半开浮点 RNG,只需将整数 RNG 的结果乘以 1/((2^32)-1) 而不是除以 (2^32) -1,因为它效率低下。
我目前在区间 (0,1) 上生成数字的方式是使用如下条件语句:
float open_open_flt = (closed_open_flt==0) ? closed_open_flt : FLT_MIN;
不幸的是,这是相当低效的,因为它是控制代码,我觉得它引入了一些偏见。
有人可以提出替代方案吗?