gpt4 book ai didi

java - 为 Java 生成整数的随机数生成器

转载 作者:搜寻专家 更新时间:2023-10-31 20:23:58 24 4
gpt4 key购买 nike

我想在 Java 中生成一些随机整数,但这是根据一些分布规律生成的。更具体:

  • 我想为高斯分布生成一些随机整数。我发现只有生成器会为高斯分布返回双倍结果。这是为什么?

  • 我想在指数分布的某些限制之间生成一些随机整数?在这里我也只发现了返回双倍的生成器。我也没有找到一种方法来生成一些仅在两个限制之间的随机指数数。

你能帮帮我吗?你知道可以做我想做的图书馆吗?我研究了 Michael Flanagan 的图书馆、colt 和 apache 的 Commons Math,但他们没有我需要的东西。

谢谢!

最佳答案

我建议你使用 Uncommons Maths库,其中包含不同的随机生成器(例如 Mersenne Twister,基于 AES)和分布(泊松分布、高斯分布等)

至于“双重问题”:几乎所有的随机生成器都会生成双重,因为它们是最常用的。如果您需要整数,您需要自己进行舍入(调用 Math.round 就足够了)。假设您要生成精度为厘米的随机人物高度:如果您的随机生成器返回 175.234,您可以将其四舍五入为 175。这真的不是问题。

至于指数分布的限制:没有生成器可以让您选择限制,因为指数分布不存在这样的限制。指数分布通常模拟泊松过程中两个连续事件之间的延迟:延迟可以低至 0,也可以非常高。极高的结果确实不太可能,但并非不可能。您可以通过从生成器获取随机数、添加下限并使用 Math.max 来解决问题。如果它高于您的上限,则对其进行修剪。但这不再是指数分布。

关于java - 为 Java 生成整数的随机数生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3900309/

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