JAVA 生成隨機數 並根據概率 比率
阿新 • • 發佈:2018-12-20
做一個翻寶程式,通過返回數字0-5來判斷中獎情況,
012345,這幾個數字的出現的概率是0出現最高,1出現比0少,2出現比1少,依次下去
/** * JAVA 返回隨機數,並根據概率、比率 * @author zhanglei * */public class MathRandom{ /** * 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; MathRandom a = new MathRandom(); for (i = 0; i <= 100; i++)//列印100個測試概率的準確性 { System.out.println(a.PercentageRandom()); } }}