gpt4 book ai didi

java - Java中如何根据概率生成随机数

转载 作者:行者123 更新时间:2023-11-29 07:32:25 31 4
gpt4 key购买 nike

我想在 10% 的时间内随机选择“1”,在 30% 的时间内随机选择“2”,在另外 60% 的时间内随机选择“3”。我想知道是否有一种方法可以让我根据 Java 中的这些概率进行随机抽样。

谢谢

最佳答案

首先生成一个在 0.0 和 1.0 之间均匀分布的 double 。然后将范围 (0.0 < x < 1.0) 拆分为对应于您所需概率的子范围:

  • 0.0 <= x < 0.1变为1(区间宽度为(0.1 - 0.0)= 0.1,即10%);
  • 0.1 <= x < 0.4变为2(区间宽度为(0.4 - 0.1)= 0.3,即30%);
  • 0.4 <= x < 1.0 变为 3(区间宽度为 (1.0 - 0.4) = 0.6,即 60%)。

在代码中:

double rand = rng.nextDouble();
if (rand < .1) {
return 1;
} else if (rand < .1 + .3) {
return 2;
} else {
return 3;
}

(其中 rngjava.util.Random 的实例。)

此方法可以很容易地推广到任意一组目标概率。

关于java - Java中如何根据概率生成随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40183948/

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