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. .eslintrc 文件

    安装 建议采用全局安装方式 npm install -g eslint 初始化 如果你的项目还没有配置文件(.eslintrc)的话,可以通过指定–init参数来生成一个新的配置文件: `eslint ...

  2. 百度ML/DL方向面经

    最近败人品败得有些厉害,很多事都处理得不好--感觉有必要做点好事攒一攒. 虽然可能面试经过不是很有代表性,不过参考价值大概还是有的-- 由于当时人在国外,三轮都是电面-- 一面 当地时间早上5点半爬起 ...

  3. ionic3-ng4学习见闻--(自定义ion-tab图标)

    学习混合开发语言,目的就是为了快速开发一个适用于多平台的app. app基本都会有footer,也就是tabbar,用来快速导航不同的页面. ionic也有这个组件,ion-tab. 常用方法如下: ...

  4. 3.3 声明[[],]的数组, push_back() 和 back() 的区别

    声明一个 [[],] 的二维数组: vector < vector<int> > res(1, vector<int>()); 或者 vector<vecto ...

  5. Why Helm? - 每天5分钟玩转 Docker 容器技术(160)

    本章我们将学习 Helm,Kubernetes 的包管理器. 每个成功的软件平台都有一个优秀的打包系统,比如 Debian.Ubuntu 的 apt,Redhat.Centos 的 yum.而 Hel ...

  6. 手把手教你全家桶之React(一)

    前言 最近项目用到react,其实前年我就开始接触react,时光匆匆,一直没有时间整理下来(太懒啦)!如今再次用到,称工作间隙,对全家桶做一次总结,项目源码地址.废话不多说,上码. 创建一个文件目录 ...

  7. 解决ASP.NET MVC 检测到有潜在危险的 Request.Form 值

    提交使用html编辑器编辑后的数据,由于Request时出现有HTML或JavaScript等字符串时,系统会认为是危险性值.立马报错. "从客户端 ... 中检测到有潜在危险的 Reque ...

  8. iOS开源加密相册Agony的实现(五)

    简介 虽然目前市面上有一些不错的加密相册App,但不是内置广告,就是对上传的张数有所限制.本文介绍了一个加密相册的制作过程,该加密相册将包括多密码(输入不同的密码即可访问不同的空间,可掩人耳目).Wi ...

  9. SpringMVC基础配置(通过注解配置,非xml配置)

    SpringMVC是什么,有多火,我这里就不再啰嗦了,SpringMVC比Struts2好用太多,我在学校的时候私下里两种都接触过,对比之后果断选择了SpringMVC,后来在做Android应用开发 ...

  10. Dynamics CRM2016 Web API之Expand related entities & $ref & $count

    本篇介绍两个关于1:N关系中通过主实体取关联子实体的api,这两个api会经常被用到而且比原来的odata方式更加方便,之前如果我们要取主实体下所有的关联实体的记录都是通过Retrieve Multi ...