随机数生成器java实现
/**
设计一个随机数生成器,可以产生给定平均概率的随机证书序列。
即输入一个概率比如: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);
}
}
//测试两组数据
//第一组:
//第二组:
最新文章
- js 判断是什么类型浏览器
- SharePoint 2013 数据库中手动更新用户信息
- JfreeChart的使用
- HTML文件基本结构
- UNIX/Linux网络编程基础:应用层协议简介
- Linux SSH: key, agent, keychain
- 判断BigDecimal是否可以转为Integer或Double
- 如何用C#寻找100到999的所有水仙花数?
- spring报错NoClassDefFoundError等与第三方jar包导入问题
- python_11_字符编码
- protobuf是什么?
- 洛谷 P1443 马的遍历
- php把阿拉伯数字转为银行数字大写
- Ubuntu 12.10 Tty (字符终端) 显示中文,和字体大小设置
- kubectl version报did you specify the right host or port
- php,合并数组,合并一维数组,合并二维数组,合并多维数组
- 如何搭建iOS项目基本框架
- WP8.1学习系列(第十二章)——全景控件Panorama开发指南
- where 命令
- JSP 点击量统计
热门文章
- 打造H5动感影集的爱恨情仇–动画性能篇
- nginx大量TIME_WAIT的解决办法
- NetworkUtils
- Eclipse中mybatis的xml文件没有提示,出现the file cannot be validated as the XML definition.....
- Abp 添加阿里云短信发送
- DEDE修改注册邮箱时一起修改UCenter中用户邮箱的问题
- Docker | 第三章:Docker常用命令
- swift 2特性记录
- SSH中懒加载异常--could not initialize proxy - no Session
- cms-后台eazyui搭建