JAVA中的Random详解
首先,在JDK自带的常用的random中有两个,这俩都是产生随机数的,不过一个是util下的random,另外一个是Math下的。我们分别介绍一下
util中的random
导包
import java.util.Random
创建Random类型的引用
Random ran = new Random();
使用功能
ran.nextInt() 产生int返回内的随机整数
ran.nextInt(整数n) 产生[0,n)范围内的int类型的随机整数
ran.nextDouble() 产生[0.0,1.0)范围内double随机小数
总结公式 :
[min,max) 随机整数 ==> ran.nextInt(max-min)+min
分析公式
1)ran.nextInt(max-min) --> [0,max-min)
2)ran.nextInt(max-min)+min --> [0,max-min)+min--> [min,max)
[min,max] 随机整数 ==> ran.nextInt(max-min+1)+min -->[0,max-min+1)+min -->[min,max+1) -->[min,max]
常用的俩
1)[min,max) 随机整数 ==> ran.nextInt(max-min)+min
2)[min,max] 随机整数 ==> ran.nextInt(max-min+1)+min -->[0,max-min+1)+min -->[min,max+1) -->[min,max]
代码
public class Class002_Random {
public static void main(String[] args) {
// 1.导包
// 2.创建Random类型的引用
Random ran = new Random();
//3.使用功能
System.out.println(ran.nextInt());
//[0,5)
System.out.println(ran.nextInt(5));
//[0,100]
System.out.println(ran.nextInt(101));
System.out.println(ran.nextDouble());
//[1,13) 随机整数
System.out.println(ran.nextInt(13-1)+1);
System.out.println(ran.nextInt(13-1)+1);
System.out.println("-----------------------");
//[5,8]
System.out.println(ran.nextInt(8-5+1)+5);
System.out.println(ran.nextInt(8-5+1)+5);
}
Math.random
Math.random()是令系统随机选取大于等于 0.0 且小于 1.0的伪随机 double 值
使用方法
Math类的random()方法可以生成大于等于0.0、小于1.0的double型随机数。
Math.random()方法语句基础上处理可获得多种类型、或任意范围的随机数。
int num = (int)(Math.random()*2+1)
//以上代码即设置一个随机1到3(取不到3)的变量num。
公式
int num=(int)(Math.random()*n); //返回大于等于0小于n之间的随机数
int num0=m+(int)(Matn.randon()*n); //返回大于等于m小于m+n(不包括m+n)之间的随机数
代码
//我们需要取2~22之间的偶数
public class MathRandomDemo{
public static int GetevenNum(double num1,double num2){
int s=(int)num1+(int)(Math.random()*(num2-num1));
if(s%2==0){
return s;
}
else
retuen s+!;
}
public static void main(String[] args){
System.out.println("任意一个"+num1+"~"+num2+"之间的偶数:"+GeteneNum(2,22));
}
}