/**

设计一个随机数生成器,可以产生给定平均概率的随机证书序列。

即输入一个概率比如:0.9

然后输入要求的概率样本个数比如:1000

输出一个接近所输入的0.9的概率数(要求样本数越大越接近输入的概率)

*/

import java.util.Date;
import java.util.Scanner;

public class Random {
private int seed;
private int multiplier = 2743;
private int addOn = 5923;
public Random(boolean pseudo){
if(pseudo){
this.seed = 1;
}else{
seed = (int)(new Date().getTime()%Integer.MAX_VALUE);
}
}
public double randomReal(){
double max = Integer.MAX_VALUE + 1.0;
double temp = reseed();
if(temp < 0) {
temp = temp + max;
}

return temp/max;
}
public int randomInteger(int low, int high){
if(low>high){
return randomInteger(high,low);
}else{
return ((int)((high-low) * randomReal())) + low;
}
}
public int poisson(double mean){
double limit = Math.exp(mean * -1);
double product = randomReal();
int count = 0;
while(product > limit){
count ++;
product = product * randomReal();
}

return count;
}

private int reseed(){
this.seed = seed*multiplier+addOn;
return this.seed;
}
}

class MainApplication{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入概率平均值:");
double mean = scanner.nextDouble();
System.out.println("请输入产生随机整数的个数:");
int count = scanner.nextInt();

Random random = new Random(false);
int sum =0;
System.out.println("产生随机整数序列");
for(int i=0; i<count; i++){
int num = random.poisson(mean);
sum += num;
System.out.print(num + " ");

if((i+1)%40 == 0){
System.out.println();
}
}

System.out.println();
System.out.println("随机整数序列平均值是:" + sum*1.0/count);
}
}

//测试两组数据

//第一组:

//第二组:

最新文章

  1. js 判断是什么类型浏览器
  2. SharePoint 2013 数据库中手动更新用户信息
  3. JfreeChart的使用
  4. HTML文件基本结构
  5. UNIX/Linux网络编程基础:应用层协议简介
  6. Linux SSH: key, agent, keychain
  7. 判断BigDecimal是否可以转为Integer或Double
  8. 如何用C#寻找100到999的所有水仙花数?
  9. spring报错NoClassDefFoundError等与第三方jar包导入问题
  10. python_11_字符编码
  11. protobuf是什么?
  12. 洛谷 P1443 马的遍历
  13. php把阿拉伯数字转为银行数字大写
  14. Ubuntu 12.10 Tty (字符终端) 显示中文,和字体大小设置
  15. kubectl version报did you specify the right host or port
  16. php,合并数组,合并一维数组,合并二维数组,合并多维数组
  17. 如何搭建iOS项目基本框架
  18. WP8.1学习系列(第十二章)——全景控件Panorama开发指南
  19. where 命令
  20. JSP 点击量统计

热门文章

  1. 打造H5动感影集的爱恨情仇–动画性能篇
  2. nginx大量TIME_WAIT的解决办法
  3. NetworkUtils
  4. Eclipse中mybatis的xml文件没有提示,出现the file cannot be validated as the XML definition.....
  5. Abp 添加阿里云短信发送
  6. DEDE修改注册邮箱时一起修改UCenter中用户邮箱的问题
  7. Docker | 第三章:Docker常用命令
  8. swift 2特性记录
  9. SSH中懒加载异常--could not initialize proxy - no Session
  10. cms-后台eazyui搭建