gpt4 book ai didi

高概率的Java随机数

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:55:42 25 4
gpt4 key购买 nike

我有一个数组 char[] Select = {'A','B','C','D','E','F','G','H','I ','J'} 并且这个数组中的每个元素都有不同的概率被选中。例如,

int[] Weight =  {10,30,25,60,20,70,10,80,20,30};

我的要求是从这个数组中选择5个元素,权重值高的元素被选中的概率更高,这5个元素应该是不同的。

我的计划是先把重量加起来

int[] weightSum = {10, 40, 65, 125, 145, 215, 225, 305, 325, 355}

然后我使用 Random 生成一个 [0,355] 范围内的随机数 k。然后在weightSum[]中寻找第一个大于k的元素。这个过程重复5次。

问题是概率高的元素可能会被多次选中。我尝试在每次迭代中删除重复的元素。删除了重复项,但未选择具有高权重值的元素。

如何解决这个问题?

谢谢。

最佳答案

不确定我是否理解正确,但是这样的事情怎么样:

  • 在第一次选择后,您从 char[] Select 中删除所选元素
  • 您还从 int[] Weight 中删除相应的权重
  • 重新生成int[] weightSum
  • 重复整个过程

关于高概率的Java随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7209465/

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