gpt4 book ai didi

java - Android 随机数问题

转载 作者:行者123 更新时间:2023-12-02 12:25:35 26 4
gpt4 key购买 nike

我正在生成随机数,但遇到了均等分配问题。该范围中的第一个和最后一个数字始终具有被选择的一半变化,因为它们不具有在两侧舍入的可能性。

例如,如果用户选择最小值为 1,最大值为 10,则与其他选项相比,1 和 10 被选中的机会会降低。

这是我当前的代码:

double num = random.nextDouble() * (max - min) + min;
String finalNum = String.format("%." + precision + "f", num);

我知道我可以通过使用 nextInt() 来解决这个问题,但问题是我想将其保留为 double ,因为用户选择小数位数。

感谢帮助。

最佳答案

double min = 1.0;
double max = 10.0;
double rand = r.nextDouble();
//now we add 1 for the spread (we want the number to be from 0.5 to 10.5)
double range = max - min + 1;
rand *=range;
//now we shift by an offset of min-0.5;
rand += (min -0.5);
//now we round the number
int intRand = Math.round(rand);

您可以使用 rand (double) 来显示您的精度并使用 intRand (int) 作为整数随机数。

关于java - Android 随机数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45496721/

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