A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© eycrckag 中级黑马   /  2013-6-6 11:58  /  1335 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Math类中random方法与Random类都可以生成随机数,他们有什么区别?
能举例说明最好。

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

2 个回复

正序浏览
random()方法是java.lang包中的Math类中的方法,且是静态的,该方法的功能是返回0~1之间的随机double类型的数值。这个方法可以模拟发牌,模拟抓球...等!
例如:
public class text {
        public static void main(String[] args) {
                // TODO Auto-generated method stub
           double a=Math.random();
           System.out.println("数值:"+a);
        }

}结果是:数值:0.28239933777712733


Random类是java.lang包中的类 他也是为了模拟产生随机数,他方法比较丰富,


例如:
public class TextClass {
   public static void main(String[]agrs){
      Random r=new Random();
      for(int i=0;i<10;i++)
         System.out.print(r.nextInt(100)+"");//产生不超过100的随机数
       System.out.println();
      for(int i=0;i<10;i++)
         System.out.print(r.nextInt(100)+"");//产生不超过100的随机数
     }
}
结果:
815698593036235676
89252921878128189843
我建议你也可以查查API文档,里面的更丰富!希望对你有帮助!

回复 使用道具 举报
他们在产生伪随机数的方式是一样的。主要区别在于就用上的区别
Math.random()返回的只是从0到1之间的小数,如果要50到100,就先放大50倍,即0到50之间,这里还是小数,如果要整数,就强制转换int,然后再加上50即为50~100.
最终代码:(int)(Math.random()*50) + 50 ;
而一个Random类的话。只需要一个方法        Random r = new Random();r.nextInt(10);即可;
                       
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马