gpt4 book ai didi

java - 生成包含在指定值区间内的随机浮点值的最佳方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 22:59:16 26 4
gpt4 key购买 nike

我想在 Java 中生成一个随机浮点值。该值必须在特定的可能值范围内。

例如,我必须生成一个在以下范围内的随机值:

MIN: 41,815080
MAX: 41,829191

这些值恰好代表了 map 上可能的经度范围,但这个问题更普遍。

什么是聪明的做法?

最佳答案

对于一个范围内的随机值,公式为:

double random = min + Math.random() * (max - min);

无论您使用什么来生成随机数,这个基本公式都是不变的。

Math.random() 提供了适度分布的数字,但您可以将其替换为您想要的任何随机数生成器,例如(稍微好一些):

Random r = new Random();
double random = min + r.nextDouble() * (max - min);

或者如果你真的想要一个float:

float random = min + r.nextFloat() * (max - min);

为了更好的质量(以速度为代价)使用随机数生成

Random random = new SecureRandom();

或者您可以使用更奇特的第 3 方库,例如:

import org.apache.commons.math3.random.RandomDataGenerator;

RandomData random = new RandomDataGenerator();

哪个使用了上级Well19937c算法。

关于java - 生成包含在指定值区间内的随机浮点值的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40431966/

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