Java中随机数的产生方法
Java中产生随机数
1.通过Math类
Math类是java.lang包中的一个类,包含了许许多多的数学方法,进入Math类,可看到如下源码:
public final class Math { /** * Dont let anyone instantiate this class. */ private Math() { }
-
可见Math类是一个由final修饰的类,不能够拥有子类,体现了它的封装性; 再看它的构造方法,是由private修饰的,可以看出Math类不能够产生对象; 在后面的定义中,Math类中的方法都是静态方法,可直接由类名.方法名直接调用;
产生随机数的就是Math类中的random()方法,看下面这段代码:
public class Rand { public static void main(String[] args) { int[] arr = new int[30]; for(int i=0; i<30; i++) { arr[i] = (int)(Math.random()*10); } for(int i:arr) { System.out.print(i+"、"); } } }
结果: 9、1、5、5、8、5、3、4、5、6、9、2、8、3、8、0、1、8、8、4、9、6、3、0、4、6、3、5、7、4、
结论:
-
random()方法能产生0~1之间的double型小数,包含0不包含1 ; 可通过对random()的返回值进行处理得到我们想要的随机数; random的返回值为double类型,注意进行强转; 得到[m,n]闭区间范围得表达式为:int res = ( int ) (Math.random( ) * (n-m+1) + m );
2.通过Random类
Random类是java.util包中得一个类,专门用来产生各种类型得随机数;
使用该类必须先生成对象,再调用它的方法,Random类中所含方法大致如下:
看示例代码:
public class Rand { public static void main(String[] args) { int[] arr = new int[30]; Random random = new Random(); for(int i=0; i<30; i++) { arr[i] = random.nextInt(5+1)+10-5; //产生5~10之间的数 } for(int i:arr) { System.out.print(i+"、"); } } }
输出: 7、10、5、10、6、7、8、9、6、9、8、6、10、5、6、10、9、7、5、10、9、8、10、9、5、7、8、9、9、7、
总结:
-
产生[m,n]闭区间的表达式为:res = random().nextInt(n-m+1) + m; 使用前得先产生Random的对象;
上一篇:
IDEA上Java项目控制台中文乱码