gpt4 book ai didi

java - 获取包含最大值的随机 double 值(Java - ThreadLocalRandom)

转载 作者:行者123 更新时间:2023-11-29 08:34:33 27 4
gpt4 key购买 nike

我有一种方法可以获取最小值和最大值之间的随机 double 值。我的问题是,如果值是例如 0D 和 10D,我永远不会获得 10D 作为可能的结果,因为 nextDouble 第二个参数是独占的。

public static Double randomDouble(Double min, Double max) {
return ThreadLocalRandom.current().nextDouble(min, max);
}

如果我将此行放入我的方法中,我会获得 10D 结果,但我不知道这是否是一个好的做法。

public static Double randomDouble(Double min, Double max) {

max = max + 0.000000000000001D;

return ThreadLocalRandom.current().nextDouble(min, max);
}

这个问题还有其他解决方案吗?

最佳答案

最简单的解决方案是忽略该问题。

只考虑简单的 [0,1] 情况。我不知道您希望分配给上限的概率是多少,但最大的合理概率是 1.0 与小于 1.0 的最大 double 之间的绝对差值。这个差异是 2-53,大约是 1.11e-16,这是一个非常小的概率。

在 1e9 次试验中得不到 1.0 的概率为 0.9999998889777038。

关于java - 获取包含最大值的随机 double 值(Java - ThreadLocalRandom),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45298633/

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