gpt4 book ai didi

java - 如何以加权方式选择随机数

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:36:59 25 4
gpt4 key购买 nike

例如,如果我有一个这样的整数数组:

int[] list = {1, 4, 2};

我想选择这 3 个数字中的一个,但选择的值越大:

1 get chosen 1/7 of the time
4 gets chosen 4/7 of the time
2 gets chosen 2/7 of the time

如果 Java 中没有,我如何为此编写一个函数。

编辑:我正在寻找一个有效的解决方案,O(n) 或更好。

我将在多个线程中多次运行此代码。建立一个新列表是不够的。

最佳答案

累加列表中的值并调用结果总和S。现在生成一个从 0 到 S - 1 的随机数。再次遍历 list 并为每个元素执行以下操作:如果该元素大于 S,则选择该元素。否则将 S 减去元素的值并继续处理下一个元素。

关于java - 如何以加权方式选择随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26751458/

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