public class Random {
private int RandomNumber ;
public Random(){
RandomNumber = (int )(Math.random()*1000000000);
}
public int getNum(){
return RandomNumber ;
}
}
public class Data {
private int size ;
private int [] data;
private boolean have ; public Data(int n) {
size = 0;
data = new int[n];
while (size < n) {
Random random = new Random();
if (insert(random.getNum())) {
size++;
}
}
} public boolean insert(int num) {
have = false ;
if (size == 0) {
data[0] = num;
size++;
} else {
for (int i = 0; i < size; i++) {
if (num == data [i]) {
have = true ;
break;
}
}
}
if (!have )
data[size ] = num;
return !have ;
} public int [] getData() {
return data ;
} public void Output() {
for (int i = 0; i < data.length; i++)
System. out.print(data [i] + " ");
System. out.println();
}
}
自己编写了这两个类,用于生成一个含有不重复的十亿以内的随机数的数组。现在问题是不知道为什么这些随机数的分布,较小的数很少,而较大的数却很多。另外,想知道如何用Java生成均匀分布的随机数Java类random
private int RandomNumber ;
public Random(){
RandomNumber = (int )(Math.random()*1000000000);
}
public int getNum(){
return RandomNumber ;
}
}
public class Data {
private int size ;
private int [] data;
private boolean have ; public Data(int n) {
size = 0;
data = new int[n];
while (size < n) {
Random random = new Random();
if (insert(random.getNum())) {
size++;
}
}
} public boolean insert(int num) {
have = false ;
if (size == 0) {
data[0] = num;
size++;
} else {
for (int i = 0; i < size; i++) {
if (num == data [i]) {
have = true ;
break;
}
}
}
if (!have )
data[size ] = num;
return !have ;
} public int [] getData() {
return data ;
} public void Output() {
for (int i = 0; i < data.length; i++)
System. out.print(data [i] + " ");
System. out.println();
}
}
自己编写了这两个类,用于生成一个含有不重复的十亿以内的随机数的数组。现在问题是不知道为什么这些随机数的分布,较小的数很少,而较大的数却很多。另外,想知道如何用Java生成均匀分布的随机数Java类random
解决方案 »
- org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException:
- 求Hibernate数据库表跨年查询
- 请问大家我java des加密后的密文和c加密出来的最后一段密文不一样!
- Diplaytag1.2 中为什么用decorator的动态链接报错
- 求助SSH多表查询例子!!!!
- 关于Spring控制器的一点点疑惑
- 简单struts and html标记的区别
- 如何在jboss中部署多个B/S项目
- j2ee 的架构里面可不可以调用VC生成的DLL?
- 哪里有xml的免费电子教材?
- 关于json转换的问题。
- 导入工程后,weblogic报错问题
这是你直观上的感受,是不准确的。你可以自己定义下什么叫做较小的数,对于 1×10^10 的范围,小于 1×10^9 的数有多少个?
可以去统计看看,如果在 1/10 左右就可以认为是均匀分布了。
如果你打算看到些 2、3 位数,这概率低的跟中彩票差不多了。