java 随机数 概率_java – 随机数与概率

您已经是一个很好的方法,并且适用于任何范围。

只是想想:另一个可能性是通过与常数乘法器相乘来消除分数,然后构建一个具有此乘数大小的数组。乘以10你得到

P(1) = 2

P(2) = 3

P(3) = 5

然后,您创建一个具有反向值的数组 – ‘1’进入元素1和2,’2’变为3到6,依此类推:

P =(1,1,2,2,2,3,3,3,3,3);

然后您可以从该数组中选择一个随机元素。

(添加)使用kiruwka的评论中的示例中的概率:

int[] numsToGenerate = new int[] { 1, 2, 3, 4, 5 };

double[] discreteProbabilities = new double[] { 0.1, 0.25, 0.3, 0.25, 0.1 };

导致全部整数的最小乘数是20,这给你

2, 5, 6, 5, 2

因此numsToGenerate的长度将为20,具有以下值:

1 1

2 2 2 2 2

3 3 3 3 3 3

4 4 4 4 4

5 5

分配是完全一样的:例如,“1”的机会现在是20中的2个 – 仍然是0.1。

这是基于您的原始概率,总计达到1.如果不是,则将总数乘以相同的因子(也就是数组长度)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值