Random r = new Random(); for(int i=0;i<100;i++){ r.nextInt(); }
Random rand = New(Random); for (int i=0;i<100;i++) rand.NextInt();
public class Test{ public static void main(String[] args){ Random r = new Random(); for(int i=0;i<100;i++){ System.out.println(r.nextInt(1000000)); } } }
public class NotSameRandoml { public static void main(String []args){ Random r = new Random(); Map map = new HashMap(); while(true){ map.put(new Integer(r.nextInt(10000)),"R"); if(map.size()==100)break; }
Iterator it = map.keySet().iterator(); int i =0; for(;it.hasNext();){ Object o = it.next(); i++; System.out.println(""+i+"="+((Integer)o).intValue()); } } }
new Random().nextInt(10000)生成的数会不会重复? 哦,好像这样生成的不会重复,那我这样做就多此一举了。
Random生成的是伪随机数,也就是说每次生成的都是一样的 new Random().nextInt(); new Random().nextInt(); 两者生成的是一样的,但是在一次生成序列中是不会重复的(概率上)
谢谢treeroot(旗鲁特) 的提醒。 试了,如果new Random().nextInt(150)的话,就会重复,但若0000太大,因此很难重得。以下还可以得到每个数重复个数。package test.util;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() ); } } }
public static void main(String[] args) { int[] num = new int[1000]; Random r =new Random(System.currentTimeMillis()); for(int i=0;i<100;i++){ while(!(num[i]>99999&&num[i]<999999)) num[i]=Math.abs(r.nextInt()%1000000); System.out.println(num[i]); } }
public static void main(String[] args) { int[] num = new int[1000]; Random r =new Random(System.currentTimeMillis()); for(int i=0;i<100;i++){ num[i]=Math.abs(r.nextInt()%1000000); System.out.println(num[i]); } }
for(int i=0;i<100;i++){
r.nextInt();
}
for (int i=0;i<100;i++)
rand.NextInt();
public static void main(String[] args){
Random r = new Random();
for(int i=0;i<100;i++){
System.out.println(r.nextInt(1000000));
}
}
}
public static void main(String []args){
Random r = new Random();
Map map = new HashMap();
while(true){
map.put(new Integer(r.nextInt(10000)),"R");
if(map.size()==100)break;
}
Iterator it = map.keySet().iterator();
int i =0;
for(;it.hasNext();){
Object o = it.next();
i++;
System.out.println(""+i+"="+((Integer)o).intValue());
}
}
}
哦,好像这样生成的不会重复,那我这样做就多此一举了。
new Random().nextInt();
new Random().nextInt();
两者生成的是一样的,但是在一次生成序列中是不会重复的(概率上)
试了,如果new Random().nextInt(150)的话,就会重复,但若0000太大,因此很难重得。以下还可以得到每个数重复个数。package test.util;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() );
}
}
}
int[] num = new int[1000];
Random r =new Random(System.currentTimeMillis());
for(int i=0;i<100;i++){
while(!(num[i]>99999&&num[i]<999999))
num[i]=Math.abs(r.nextInt()%1000000);
System.out.println(num[i]);
}
}
int[] num = new int[1000];
Random r =new Random(System.currentTimeMillis());
for(int i=0;i<100;i++){
num[i]=Math.abs(r.nextInt()%1000000);
System.out.println(num[i]);
}
}