java根据概率生成数字

  1. /**
  2. * JAVA 返回随机数,并根据概率、比率
  3. * @author zhanglei
  4. *
  5. */
  6. public class MathRandom
  7. {
  8. /**
  9. * 0出现的概率为%50
  10. */
  11. public static double rate0 = 0.50;
  12. /**
  13. * 1出现的概率为%20
  14. */
  15. public static double rate1 = 0.20;
  16. /**
  17. * 2出现的概率为%15
  18. */
  19. public static double rate2 = 0.15;
  20. /**
  21. * 3出现的概率为%10
  22. */
  23. public static double rate3 = 0.10;
  24. /**
  25. * 4出现的概率为%4
  26. */
  27. public static double rate4 = 0.04;
  28. /**
  29. * 5出现的概率为%1
  30. */
  31. public static double rate5 = 0.01;
  32. /**
  33. * Math.random()产生一个double型的随机数,判断一下
  34. * 例如0出现的概率为%50,则介于0到0.50中间的返回0
  35. * @return int
  36. *
  37. */
  38. private int PercentageRandom()
  39. {
  40. double randomNumber;
  41. randomNumber = Math.random();
  42. && randomNumber <= rate0)
  43. {
  44. ;
  45. }
  46. else if (randomNumber >
    rate0  && randomNumber <= rate0 + rate1)
  47. {
  48. ;
  49. }
  50. else if (randomNumber >= rate0 + rate1
  51. && randomNumber <= rate0 + rate1 + rate2)
  52. {
  53. ;
  54. }
  55. else if (randomNumber >= rate0 + rate1 + rate2
  56. && randomNumber <= rate0 + rate1 + rate2 + rate3)
  57. {
  58. ;
  59. }
  60. else if (randomNumber >= rate0 + rate1 + rate2 + rate3
  61. && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4)
  62. {
  63. ;
  64. }
  65. else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4
  66. && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4
  67. + rate5)
  68. {
  69. ;
  70. }
  71. ;
  72. }
  73. /**
  74. * 测试主程序
  75. * @param agrs
  76. */
  77. public static void main(String[] agrs)
  78. {
  79. ;
  80. MathRandom a = new MathRandom();
  81. ; i <= 100; i++)//打印100个测试概率的准确性
  82. {
  83. System.out.println(a.PercentageRandom());
  84. }
  85. }
  86. }
上一篇:网络协议学习笔记(七)流媒体协议和P2P协议


下一篇:两类传输协议:TCP,UDP