有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVA如何生成一个随机数,该随机数对某些数字进行加权?

我如何在Java中(使用Eclipse)生成一个随机数,该随机数对某些数字进行加权

例如,我有100个数字,每个数字在1%的时间内都可以被平均选择。然而,如果某个数字,比如说5,在这100个数字中显示了8次,那么它现在有8%的几率被随机选择,而其他数字仍然是1%

我如何编写一个随机生成器,它给我10个数字,给数字5个8%的优势来显示

如果我没有解释清楚的话,谢谢你,对不起


共 (1) 个答案

  1. # 1 楼答案

    public static void main(String[] args){
        ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(5);list.add(2);// to be continued ...        
        int randomInt = list.get((int) (Math.random() * list.size()));
        System.out.println(randomInt);
    }
    

    您将得到您的值列表,然后您只需要随机选取一个索引并返回值

    Math.random()将在[0;1]中选取一个值[,如果你乘以10个元素的List的大小,你将在[0;10]中得到一个值[,当你转换为int时,你将得到10种可能的索引来查看List

    ArrayList(实现List允许重复元素,因此: 如果你加上1,2,2,3,4,5,6,7,8,9(顺序无关紧要),你将有10个元素,每个元素的概率1/10=10/100=10%(又名几率),但是元素2出现两次,在方法中被选择的几率20%,数字越大,被选择的几率越大,如你所说(数字出现的次数)/(元素总数)(这是基础数学)