随机数深入理解

35 篇文章 0 订阅
1 篇文章 0 订阅

Math中的random方法:
在这里插入图片描述
注:
1、static修饰的,所以可以直接使用Math.random()调用
2、Math.random()的范围是 大于等于0.0,小于1.0的

java中随机取数使用random方法 构造函数方法有二:
① Random(long seed);//利用seed作为随机发生器的种子

② - Random(); //省略了seed,则则利用系统时间作为随机发生器的种子

        Random random = new Random();    
   创建完随机对象之后通过以下方法可以获得不同类型的随机数method:
    nextInt()、nextLong()、nextFloat()、nextDouble();

random方法的包:
             import java.util.Random;

指定范围内的随机数三种方法:
//100以内的随机数
①通过java.util包中的Random类的next方法来获得

  import java.util.Random;
  public class CeShi{

public static void main(String []args) {
    Random random = new Random();
    for(int i=0;i<10;i++)
    System.out.print(random.nextInt(100)+" ");
}
}

②(数据类型)(最小值+Math.random()*(最大值-最小值+1))

     (int)(Math.random()*(100-1+1))
       System.out.print((int)(Math.random()*100)+" ");

③利用%进行取模操作即可

产生的随机数有正有负,利用abs方法取绝对值 通过%100就能得到100 以内的随机数
        System.out.print(Math.abs(random.nextInt()%100)+" ");

例题详解:
获取a-b之间的随机数,例子:返回2–7之间的随机整数

public class MathMethod {
    public static void main(String[] args) {
        //获取a-b之间的随机数,例子:返回2--7之间的随机整数
        //分析:
        //1.  Math.random()是获取0-1之间的随机小数,0可取,1不可取, 0 <= Math.random() < 1
        //2.获取a-b之间是随机数,就: a + (Math.random()*(b-a+1))
        //   分析: 因为 0 <= Math.random() < 1  ,(b-a)< (b-a+1) < (b-a+1)
        //         所以:0*(b-a) <= Math.random()*(b-a+1) < 1*( b-a+1 )
        //         所以:0 <= Math.random()*(b-a+1) < (b-a+1)
        //         又因为:a+0 <= Math.random()*(b-a+1) < a+(b-a+1)
        //         所以:a <= Math.random()*(b-a+1) < b+1
        //3.要想获得整数,就需要用 int 去强制转换所获得的随机值,单纯 (int)Math.random()=0
        //4.所以要想获得a-b之间的随机整数就:(int)(a + (Math.random()*(b-a+1)))
        //5.用a=2,b=7,循环十次来测试是否正确
        for (int i = 0; i <10 ; i++) {
            System.out.print(((int)(2+Math.random()*(7-2+1)))+"\t");
            //用制表位去改输出格式,就不用换行输出了
        }
    }
}
输出:
2	2	4	7	3	7	7	2	7	6	

随机数的篇幅就到这里了,可以私信小王和你探讨哦,同时感兴趣其他Math方法,或者想更加了解Java的可以查看小王的其他章节哦,小王博客里有Java从精通到入门的所有笔记吖,可以参考哟,谢谢~~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值