Math类中random方法与Random类都可以生成随机数,他们有什么区别

如题所述

Random类的随机方法是设定随机种子的,(如:new Random().nextInt(10)),这里的10就是随机种子,根据随机数的原理,相同随机种子在相同的随机次数中产生的随机数是一样的,(
public class RandomNum{
public static void main(String[] args){
Random r1 = new Random(100);//第一个Random对象r1,随机种子100
Random r2 = new Random(100);//第二个Random对象r2,随机种子100
System.out.println("r1产生的值:"+r1.nextInt());
System.out.println("r2产生的值:"+r2.nextInt());
System.out.println("Math.random产生的值:"+(int)(Math.random()*100));
}
}
),如果看Math的random方法的实现代码的话,就会发现,该方法就是调用的Random类的nextDouble()方法。
因为Math类的random方法使用较方便,不需要导包、创建对象,所以许多人习惯于使用该方法。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-20
Random类的随机方法是设定随机种子的,(如:new Random().nextInt(10)),这里的10就是随机种子,根据随机数的原理,相同随机种子在相同的随机次数中产生的随机数是一样的,( public class RandomNum{ public static void main(String[] args){ Random r1 = new Random(100);//第一个Random对象r1,随机种子100 Random r2 = new Random(100);//第二个Random对象r2,随机种子100 System.out.println("r1产生的值:"+r1.nextInt()); System.out.println("r2产生的值:"+r2.nextInt()); System.out.println("Math.random产生的值:"+(int)(Math.random()*100)); } } ),如果看Math的random方法的实现代码的话,就会发现,该方法就是调用的Random类的nextDouble()方法。 因为Math类的random方法使用较方便,不需要导包、创建对象,所以许多人习惯于使用该方法。
math的random只能获得一个随机数,而Random类里边还提供了很多对随机数处理的方法~~
第2个回答  2013-06-05
照我的理解就是,math的random只能活的一个随机数,而Random类里边还提供了很多对随机数处理的方法~~