数字(0-9)按概率输出

public class InsureServiceRandomUtil  {

    /**
     * 0 道路救援(拖车) 出现的概率为5%
     */
    public static double rate0 = 0.05;
    /**
     * 1 安全检测 出现的概率为5%
     */
    public static double rate1 = 0.05;
    /**
     * 2 代驾服务 出现的概率为55%
     */
    public static double rate2 = 0.55;
    /**
     * 3 年检审车 出现的概率为5%
     */
    public static double rate3 = 0.05;
    /**
     * 4 道路救援(紧急加水) 出现的概率为5%
     */
    public static double rate4 = 0.05;
    /**
     * 5 道路救援(搭电) 出现的概率为5%
     */
    public static double rate5 = 0.05;
    /**
     * 6 道路救援(轮胎充气) 出现的概率为5%
     */
    public static double rate6 = 0.05;
    /**
     * 7 道路救援(送冷却液) 出现的概率为5%
     */
    public static double rate7 = 0.05;
    /**
     * 8 道路救援(更换轮胎) 出现的概率为5%
     */
    public static double rate8 = 0.05;
    /**
     * 9 事故救援(拖车) 出现的概率为5%
     */
    public static double rate9 = 0.05;


    /**
     * Math.random()产生一个double型的随机数,判断一下
     *  例如0出现的概率为5%,则介于0到0.05中间的返回0
     *
     * @return int
     */
    public static int PercentageRandom() {
        double randomNumber;
        randomNumber = Math.random();
        if (randomNumber >= 0 && randomNumber <= rate0) {
            return 0;
        } else if (randomNumber >= rate0 / 100 && randomNumber <= rate0 + rate1) {
            return 1;
        } else if (randomNumber >= rate0 + rate1 && randomNumber <= rate0 + rate1 + rate2) {
            return 2;
        } else if (randomNumber >= rate0 + rate1 + rate2 && randomNumber <= rate0 + rate1 + rate2 + rate3) {
            return 3;
        } else if (randomNumber >= rate0 + rate1 + rate2 + rate3 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4) {
            return 4;
        } else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5) {
            return 5;
        }else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 +rate6) {
            return 6;
        }else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7) {
            return 7;
        }else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7 + rate8) {
            return 8;
        }else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7 + rate8 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7 + rate8 + rate9) {
            return 9;
        }

        return -1;
    }
    /**
     * 测试主程序
     *
     * @param agrs
     */
    public static void main(String[] agrs) {
        int i = 0;
        InsureServiceRandomUtil a = new InsureServiceRandomUtil();
        for (i = 0; i <= 100; i++){//打印100个测试概率的准确性
            System.out.println(a.PercentageRandom());
        }
    }
}
发布了24 篇原创文章 · 获赞 0 · 访问量 734

猜你喜欢

转载自blog.csdn.net/weixin_43355449/article/details/103297586