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. flask的自带logger和celery的自带logger的使用

    在celery和flask框架中都有自带的logger使用方法.下面记录一下相关的使用. flask中使用logger flask中的app对象FLASK()自带了logger方法,其调用的方式为: ...

  2. axios的兼容性处理

    一.简介 看看官网的简介: "Promise based HTTP client for the browser and node.js" 译:基于 Promise 的 HTTP ...

  3. struts框架从.jsp页面直接访问action

    <%@ page language="java" pageEncoding="UTF-8"%><%String path = request. ...

  4. jmeter录制APP时不能登录的问题

    问题描述: 录制APP时,其他一切挺顺利的,但在登录的时候提示"服务器发生未知错误,请稍后重试".一开始以为是接口问题,用python脚本调用了下,是可以登录的,排除接口问题.百度 ...

  5. 解释session

    我理解的session就是,多个页面都要使用某一个或一些数据,这时就可以用session,将数据暂时保存起来,这样其他的页面开启session,就能将那些数据拿出来使用.

  6. iOS开发-文件管理

    iOS学习笔记(十七)--文件操作(NSFileManager) 浅析 RunLoop 解决EXC_BAD_ACCESS错误的一种方法--NSZombieEnabled iOS开发--Swift篇&a ...

  7. .net环境下跨进程、高频率读写数据

    一.需求背景 1.最近项目要求高频次地读写数据,数据量也不是很大,多表总共加起来在百万条上下. 单表最大的也在25万左右,历史数据表因为不涉及所以不用考虑, 难点在于这个规模的热点数据,变化非常频繁. ...

  8. UltraISO安装centos7系统

    1. 使用最新版UltraISO将ISO镜像刻录到U盘一定要是最新版,试用版都可以,按下图操作: 2. U盘启动电脑进入安装界面正常情况下你应该会看到下面的这个界面: 选择第一项,然后按TAB键(在评 ...

  9. render函数data参数中的model选项

    官方文档没有说, 但是编译v-model时, 是有model这个选项的, 例如: _c('el-input', { attrs: { "placeholder": "手机 ...

  10. comtypes加word 2013批量将pdf转换为doc

    office 2013很强大. import os import sys import re import comtypes.client wdFormatPDF = 17 def covx_to_p ...