1. 程式人生 > >JAVA 生成隨機數 並根據概率 比率

JAVA 生成隨機數 並根據概率 比率

               

做一個翻寶程式,通過返回數字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());  } }}