Random r = new Radom(); int sumAll=0; int[] sum = new int [100]; double [] rate =new double[100]; for(int i=0;i<100000;i++){ int temp = (Math.abs(r.nextInt()%101)); sum[temp]++; sumAll++; } for(int i=0;i<101;i++){ double t = sum[i]; rate[i] = t/sumAll; }
public class T1 { public static void main(String[] args) { int[] odds = new int[101];
// 初始化 for (int i = 0; i < odds.length; i ++) odds[i] = 0;
// 随机抽取1000次 for (int i= 0; i < 1000; i ++) odds[(int)(Math.random() * 101)] ++;
// 得出结果 for (int i = 0; i < odds.length; i ++) System.out.println("odds[" + i + "]=" +odds[i]); } }
import java.util.*; public class Rate{ /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] a = new int[101]; Random rd = new Random(); final int COUNTER = 1000000;//样本空间,你想要好大,就该为好大,只要不超过int的表示范围就可以了 for (int i = 0; i < COUNTER; i++) { a[rd.nextInt(a.length)]++; } for (int i = 0; i < a.length; i++) { System.out.println("a[" + i + "]=" + ((double) a[i]*100 / COUNTER)+"%"); } } }
一般来说,java获得的随机数都是都是平均分布的,各个数出现的概率都差不多
import java.util.*;public class NotSameRandoml { public static void main(String []args){ Random r = new Random(); Map map = new HashMap(); int n = 0; int nt = 0; while(true){ n = r.nextInt(150); nt = 0; if( map.get(new Integer(n))!=null){ nt = ((Integer)map.get(new Integer(n))).intValue(); } nt++; map.put(new Integer(n),new Integer(nt)); if(map.size()==100)break; }
Iterator it = map.keySet().iterator(); int i =0; for(;it.hasNext();){ Object o = it.next(); i++; System.out.println(""+((Integer)o).intValue()+"have:"+((Integer)map.get(o)).intValue() ); } } }
import java.util.Random;public class RandomTest { private int[] num=null; private int cnt; private Random r=null; public RandomTest() { num=new int[100]; cnt=0; r=new Random(); } public int getRandomNum() { int rand=r.nextInt(100); num[rand]++; cnt++; return rand; } public float getNumRate(int index) { return num[index]/(float)cnt; } public static void main(String args[]) { RandomTest r=new RandomTest(); int tmp; for(int i=0 ; i<100 ; i++) { tmp=r.getRandomNum(); System.out.print((tmp>10 ? tmp : (" "+tmp))+" "); if((i+1)%10 == 0)System.out.println(); } System.out.println("50 rate:"+r.getNumRate(50)*100+"%"); } }
import java.util.*;class Counter { int i = 1; public String toString() { return Integer.toString(i); } }class Statistics { public static void main(String[] args) { Hashtable ht = new Hashtable(); //一万个随机数 for(int i = 0; i < 10000; i++) { // Produce a number between 0 and 20: Integer r = new Integer((int)(Math.random() * 20)); if(ht.containsKey(r)) ((Counter)ht.get(r)).i++; else ht.put(r, new Counter()); } System.out.println(ht); } }
int sumAll=0;
int[] sum = new int [100];
double [] rate =new double[100];
for(int i=0;i<100000;i++){
int temp = (Math.abs(r.nextInt()%101));
sum[temp]++;
sumAll++;
}
for(int i=0;i<101;i++){
double t = sum[i];
rate[i] = t/sumAll;
}
public class T1
{
public static void main(String[] args)
{
int[] odds = new int[101];
// 初始化
for (int i = 0; i < odds.length; i ++)
odds[i] = 0;
// 随机抽取1000次
for (int i= 0; i < 1000; i ++)
odds[(int)(Math.random() * 101)] ++;
// 得出结果
for (int i = 0; i < odds.length; i ++)
System.out.println("odds[" + i + "]=" +odds[i]);
}
}
public class Rate{ /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = new int[101];
Random rd = new Random();
final int COUNTER = 1000000;//样本空间,你想要好大,就该为好大,只要不超过int的表示范围就可以了
for (int i = 0; i < COUNTER; i++) {
a[rd.nextInt(a.length)]++;
} for (int i = 0; i < a.length; i++) {
System.out.println("a[" + i + "]=" + ((double) a[i]*100 / COUNTER)+"%");
} }
}
public static void main(String []args){
Random r = new Random();
Map map = new HashMap();
int n = 0;
int nt = 0;
while(true){
n = r.nextInt(150);
nt = 0;
if( map.get(new Integer(n))!=null){
nt = ((Integer)map.get(new Integer(n))).intValue();
}
nt++;
map.put(new Integer(n),new Integer(nt));
if(map.size()==100)break;
}
Iterator it = map.keySet().iterator();
int i =0;
for(;it.hasNext();){
Object o = it.next();
i++;
System.out.println(""+((Integer)o).intValue()+"have:"+((Integer)map.get(o)).intValue() );
}
}
}
{
private int[] num=null;
private int cnt;
private Random r=null; public RandomTest()
{
num=new int[100];
cnt=0;
r=new Random();
} public int getRandomNum()
{
int rand=r.nextInt(100);
num[rand]++;
cnt++;
return rand;
} public float getNumRate(int index)
{
return num[index]/(float)cnt;
} public static void main(String args[])
{
RandomTest r=new RandomTest();
int tmp;
for(int i=0 ; i<100 ; i++)
{
tmp=r.getRandomNum();
System.out.print((tmp>10 ? tmp : (" "+tmp))+" ");
if((i+1)%10 == 0)System.out.println();
}
System.out.println("50 rate:"+r.getNumRate(50)*100+"%");
}
}
我那个程序不可能集中在97 98 99 100这四个数之中..
我的运行结果如下:
a[0]=0.9919%
a[1]=0.9969%
a[2]=0.9909%
a[3]=0.9819%
a[4]=0.9912%
a[5]=0.9786%
a[6]=0.9765%
a[7]=0.97%
a[8]=1.0%
a[9]=0.9813%
a[10]=1.0004%
a[11]=0.9834%
a[12]=0.9839%
a[13]=0.9892%
a[14]=0.996%
a[15]=0.9865%
a[16]=0.9825%
a[17]=0.9852%
a[18]=0.9794%
a[19]=1.0064%
a[20]=0.9825%
a[21]=0.9888%
a[22]=1.0178%
a[23]=0.9801%
a[24]=0.9766%
a[25]=1.0004%
a[26]=0.9949%
a[27]=0.9905%
a[28]=0.9797%
a[29]=0.9857%
a[30]=0.9991%
a[31]=1.0071%
a[32]=0.9833%
a[33]=0.9857%
a[34]=1.0066%
a[35]=0.9881%
a[36]=0.9933%
a[37]=0.9985%
a[38]=0.9984%
a[39]=0.9994%
a[40]=1.0071%
a[41]=1.0024%
a[42]=0.9891%
a[43]=0.9717%
a[44]=0.9977%
a[45]=0.9906%
a[46]=0.9903%
a[47]=1.0036%
a[48]=0.9923%
a[49]=0.9887%
a[50]=0.9823%
a[51]=0.9771%
a[52]=0.991%
a[53]=0.9939%
a[54]=0.9903%
a[55]=0.9951%
a[56]=0.979%
a[57]=0.9921%
a[58]=0.9869%
a[59]=0.9729%
a[60]=0.9879%
a[61]=0.9784%
a[62]=0.992%
a[63]=0.9959%
a[64]=0.9851%
a[65]=0.9863%
a[66]=1.0036%
a[67]=1.0041%
a[68]=0.9871%
a[69]=0.9878%
a[70]=0.9964%
a[71]=0.9987%
a[72]=1.005%
a[73]=0.9825%
a[74]=0.9837%
a[75]=0.9806%
a[76]=0.9733%
a[77]=1.0%
a[78]=0.9886%
a[79]=0.9907%
a[80]=0.9812%
a[81]=0.9834%
a[82]=0.9996%
a[83]=0.9945%
a[84]=0.9755%
a[85]=0.9885%
a[86]=0.9774%
a[87]=1.0026%
a[88]=0.9768%
a[89]=0.995%
a[90]=0.9921%
a[91]=0.9892%
a[92]=0.9956%
a[93]=0.9932%
a[94]=0.9961%
a[95]=0.9808%
a[96]=0.9934%
a[97]=0.9929%
a[98]=0.9878%
a[99]=0.9931%
a[100]=1.0009%
int i = 1;
public String toString() {
return Integer.toString(i);
}
}class Statistics {
public static void main(String[] args) {
Hashtable ht = new Hashtable();
//一万个随机数
for(int i = 0; i < 10000; i++) {
// Produce a number between 0 and 20:
Integer r =
new Integer((int)(Math.random() * 20));
if(ht.containsKey(r))
((Counter)ht.get(r)).i++;
else
ht.put(r, new Counter());
}
System.out.println(ht);
}
}