JAVA中的Random详解

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));
	}
}
  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值