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. }

java根据概率生成数字的更多相关文章

  1. JAVA JDK keytool 生成数字证书

    简介: 数字证书作为网络安全数据传输的凭证,web在传输时客户端(浏览器)和 服务端(服务器)先进行会话握手,在握手过程中服务端会验证客户端的是否已经在服务端做了认证,这是单向认证.如果是双向认证的话 ...

  2. [CareerCup] 17.11 Rand7 and Rand5 随机生成数字

    17.11 Implement a method rand7() given rand5(). That is, given a method that generates a random numb ...

  3. 通过java来批量生成身份证号

    通过java来批量生成身份证号,方便来测试程序. package com.diyvc.controller.user; import java.util.Calendar; import java.u ...

  4. 67. 总结篇:面试中随机数"等概率"vs"不等概率"生成问题[random generator with equal or unequal probability]

    [本文链接] http://www.cnblogs.com/hellogiser/p/random-generator-with-equal-or-unequal-probability.html 1 ...

  5. JAVA基础学习之命令行方式、配置环境变量、进制的基本转换、排序法、JAVA文档生成等(1)

    1.命令行方式 dos命令行,常见的命令: dir:列出当前目录下的文件以及文件夹 md:创建目录 rd:删除目录 cd:进入指定目录 cd..:退回到上一级目录 cd/:退回到根目录 del:删除文 ...

  6. 利用Java随机,生成随机学生数据

    为模拟向数据库中大量插入学生数据(注:此处应该用PreparedStatement.batchUpdate等批处理提高效率)的情形,通过Java随机来生成学生数据. 一.要生成的学生数据 studen ...

  7. JDK 生成数字证书

    JDK(keytool.exe)生成数字证书 2010-11-21 15:52 QUOTE: keytool JAVA是个密钥和证书管理工具.它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数 ...

  8. java模拟验证码生成

    设计思想 第一步:随机生成字符串 第二步:用户输入字符串 第三步:将两个字符串转化为同一类型 第四步:比较是否相同 第五步:输出结果 程序流程图 程序源代码 /*2017/10/7 王翌淞 验证码模拟 ...

  9. java选做猜数字

    程序设计思想 第一步:使用随机数生成1-100的数字 第二步:让用户输入数字 第三步:输入的数字与生成数字不同执行下一步,相同执行第五步 第四步:比较两数大小并输出结果,并返回第二步 第五步:输出猜对 ...

随机推荐

  1. Python【第四课】 装饰器

    本篇内容 什么是装饰器 装饰器需要遵循的原则 实现装饰器的知识储备 高阶函数 函数嵌套 闭包函数 无参函数 装饰器示例 1.什么是装饰器 器即函数 装饰即修饰,意指为其他函数添加新功能 装饰器定义:本 ...

  2. 【Git】Git工具常用命令

    GitHub使用指南 一.把本地代码上传到GitHub 0. 提前配置好上传地址 [git config --global user.name "username"] [git c ...

  3. c语言第三次作业。

    ---恢复内容开始--- (一)改错题 计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数. 源代码 : 第一次编译: 错误原因:if 后面有分号 改正方法:去掉分号 ...

  4. Mysql锁机制--行锁

    Mysql 系列文章主页 =============== 1 准备数据 1.1 建表 DROP TABLE IF EXISTS employee; CREATE TABLE IF NOT EXISTS ...

  5. 总结angular+ionic项目中的问题

    1:tab的路由导向问题 运用ion-tabs时,第一个ion-tabs标签下的href功能会覆盖掉路由中定义的默认路由(进入应用后直接加载href指向的组件). 解决方法:多写一个ion-tabs标 ...

  6. H5canvas基础

    本篇文章开始讲解HTML5的核心功能之一:Canvas 通过Canvas可以动态生成和展示图形.图表.图像以及动画. Canvas API功能非常多,我们将讨论最常用的功能. 我们先新建一个canva ...

  7. 修复 Ubuntu 14.04 的系统设置残缺问题

    sudo apt-get install ubuntu-desktop

  8. POJ 2135 最小费用最大流

    题目链接 Farm Tour Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18961   Accepted: 7326 D ...

  9. MongoDB 连接

    启动 MongoDB服务 在前面的教程中,我们已经讨论了如何启动MongoDB服务,你只需要在MongoDB安装目录的bin目录下执行'mongod'即可. 执行启动操作后,mongodb在输出一些必 ...

  10. Spring动态切换多数据源解决方案

    Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时 ...