gpt4 book ai didi

基于机会从列表中输出Java

转载 作者:行者123 更新时间:2023-11-29 05:05:44 26 4
gpt4 key购买 nike

我试图找出一种方法,它有两个参数,一个是 Object[],另一个是 float[],两者大小相同。 float 是输出是对象列表中相应对象的机会,索引 i 中的对象有机会 (0.0-1.0) 存储在索引 i 中的 float 中。如果所有值加在一起,机会列表中的值总和为 1.0。

我想让这个方法做的事情是从列表中随机返回一个对象,即每个对象在机会列表中被选中的机会。示例 {banana, apple, orange} {0.1, 0.5, 0.4} 有 10% 的机会返回香蕉,50% 的苹果和 40% 的橙子。

注意:该方法不能用于固定数量的对象,因此硬编码的 if 链将不起作用:/

非常感谢任何帮助。

最佳答案

我的方法是使用 a 变量来存储数组中位置的累积机会。

public Object randomObject(Object[] objects, float[] chances){
//Implement here validations, about arrays size and chances values.

float random = (float) Math.random();
float acumulatedChance = 0f;

for (int i = 0; i < chances.length; i++) {
acumulatedChance += chances[i];
if (acumulatedChance >= random) {
return objects[i];
}
}
return objects[objects.length-1];
}

关于基于机会从列表中输出Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30418139/

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