如何设置签到积分的获得概率

该博客展示了一个Java方法,用于生成3到10之间的随机积分,并确保积分的平均值落在5到6之间。通过一百万次模拟,计算并打印了样本数量、积分总和以及平均值,同时记录了每个积分值的出现次数,以验证分布的合理性。
摘要由CSDN通过智能技术生成

要求总积分平均值在5~6之间

import java.util.HashMap;
import java.util.Map;

public class IntegralUtil {
    /**
     * 获取积分
     * 获取积分区间为3~10
     * 3~ 1%
     * 4~ 13%
     * 5~ 40%
     * 6~ 20%
     * 7~ 10%
     * 8~ 10%
     * 9~ 5%
     * 10~1%
     *
     * @return
     */
    public static int getIntegral() {
        int temp = (int) (1.0 + Math.random() * (100));
        if (temp == 1) {
            return 3;
        } else if (temp >= 2 && temp <= 14) {
            return 4;
        } else if (temp >= 15 && temp <= 54) {
            return 5;
        } else if (temp >= 55 && temp <= 74) {
            return 6;
        } else if (temp >= 75 && temp <= 84) {
            return 7;
        } else if (temp >= 85 && temp <= 94) {
            return 8;
        } else if (temp >= 95 && temp <= 99) {
            return 9;
        } else if (temp == 100) {
            return 10;
        }
        return -1000000000;
    }

    public static void main(String[] args) {
        int[] size = new int[]{100, 000, 000};
        for (int i = 0; i < size.length; i++) {
            int count = 0;
            int sum = 0;
            Map<Integer, Integer> map = new HashMap<>(64);
            for (int j = 0; j < size[i]; j++) {
                count = count + 1;
                int result = getIntegral();
                sum = getIntegral() + sum;
                if (map.get(result) == null) {
                    map.put(result, 1);
                } else {
                    map.put(result, map.get(result) + 1);
                }
            }
            System.out.println("样本数量" + count + "," + "积分总和" + sum + ",平均值" + Double.valueOf(sum) / Double.valueOf(count));
            for (int key : map.keySet()) {
                System.out.println("-----" + key + "出现" + map.get(key) + "次");
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值