JAVA 根据概率生成的随机数

来源:互联网 发布:旅游一次性用品 知乎 编辑:程序博客网 时间:2024/05/17 01:51


JAVA 生成 有规律概率的 随机数


public class ProbabilityMathRandom {    /**     * 0出现的概率为%50     */    public static double rate0 = 0.50;    /**     * 1出现的概率为%20     */    public static double rate1 = 0.20;    /**     * 2出现的概率为%15     */    public static double rate2 = 0.15;    /**     * 3出现的概率为%10     */    public static double rate3 = 0.10;    /**     * 4出现的概率为%4     */    public static double rate4 = 0.04;    /**     * 5出现的概率为%1     */    public static double rate5 = 0.01;    /**     * Math.random()产生一个double型的随机数,判断一下     *  例如0出现的概率为%50,则介于0到0.50中间的返回0     *     * @return int     */    private 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;        }        return -1;    }    /**     * 测试主程序     *     * @param agrs     */    public static void main(String[] agrs) {        int i = 0;        ProbabilityMathRandom a = new ProbabilityMathRandom();        for (i = 0; i <= 100; i++){//打印100个测试概率的准确性            System.out.println(a.PercentageRandom());        }    }}


原创粉丝点击